java 模板类 mock_Spring Boot单元测试中使用mockito框架mock掉整个RedisTemplate的示例

概述

当我们使用单元测试来验证应用程序代码时,如果代码中需要访问redis,那么为了保证单元测试不依赖redis,需要将整个redis mock掉。在spring boot中结合mockito很容易做到这一点,如下代码:

import org.mockito.mockito;

import org.springframework.context.annotation.bean;

import org.springframework.context.annotation.configuration;

import org.springframework.data.redis.connection.redisconnection;

import org.springframework.data.redis.connection.redisconnectionfactory;

import org.springframework.data.redis.core.*;

import org.springframework.test.context.activeprofiles;

import static org.mockito.mockito.when;

/**

* mock掉整个redistemplate

*/

@activeprofiles("uttest")

@configuration

public class redistemplatemocker {

@bean

public redistemplate redistemplate() {

redistemplate redistemplate = mockito.mock(redistemplate.class);

valueoperations valueoperations = mockito.mock(valueoperations.class);

setoperations setoperations = mockito.mock(setoperations.class);

hashoperations hashoperations = redistemplate.opsforhash();

listoperations listoperations = redistemplate.opsforlist();

zsetoperations zsetoperations = redistemplate.opsforzset();

when(redistemplate.opsforset()).thenreturn(setoperations);

when(redistemplate.opsforvalue()).thenreturn(valueoperations);

when(redistemplate.opsforhash()).thenreturn(hashoperations);

when(redistemplate.opsforlist()).thenreturn(listoperations);

when(redistemplate.opsforzset()).thenreturn(zsetoperations);

redisoperations redisoperations = mockito.mock(redisoperations.class);

redisconnection redisconnection = mockito.mock(redisconnection.class);

redisconnectionfactory redisconnectionfactory = mockito.mock(redisconnectionfactory.class);

when(redistemplate.getconnectionfactory()).thenreturn(redisconnectionfactory);

when(valueoperations.getoperations()).thenreturn(redisoperations);

when(redistemplate.getconnectionfactory().getconnection()).thenreturn(redisconnection);

return redistemplate;

}

}

上面的代码已经mock掉大部分的redis操作了,网友想mock掉其他操作,自行加上即可。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对萬仟网的支持。如果你想了解更多相关内容请查看下面相关链接

希望与广大网友互动??

点此进行留言吧!


版权声明:本文为weixin_28872105原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。