概述
当我们使用单元测试来验证应用程序代码时,如果代码中需要访问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掉其他操作,自行加上即可。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对小牛知识库的支持。如果你想了解更多相关内容请查看下面相关链接
问题内容: 有人可以帮我这个忙。我正在使用Jersey休息测试框架版本2.21(在Grizzly容器上)编写Rest资源的单元测试。 当我调试测试类时,看到myManager的模拟对象。但是,当调试进入“ MyResouce类”时,myManager对象将变为null并得到NullPointer异常。 尝试过其他人提供的解决方案,但是没有运气。请有人帮我。我将近三天就遇到这个问题。:( 我的资源类
本文向大家介绍基于Springboot+Junit+Mockito做单元测试的示例,包括了基于Springboot+Junit+Mockito做单元测试的示例的使用技巧和注意事项,需要的朋友参考一下 前言 这篇文章介绍如何使用Springboot+Junit+Mockito做单元测试,案例选取撮合交易的一个类来做单元测试。 单元测试前先理解需求 要写出好的单测,必须先理解了需求,只有知道做什么才能
我正在尝试使用Mockito在SprinBoot应用程序中进行一些jUnit测试。 现在我的服务有了一些变量,可以从通过注释: 我试图通过像这样使用来测试这个: 但是,该属性不会被填充,并保持为。 这方面有很多TPOIC,但我还没能拼凑出一个解决方案。我看到解决方案建议,但它似乎想做一个集成测试,使服务加速,但由于无法连接到数据库,服务失败了。所以这不是我想要的。 我还看到一些解决方案建议我制作一
问题内容: 测试UI很困难。您认为Swing的最佳单元测试框架是什么? 问题答案: 我认为目前最好的是FEST。
本文向大家介绍SSM框架中测试单元的使用 spring整合Junit过程详解,包括了SSM框架中测试单元的使用 spring整合Junit过程详解的使用技巧和注意事项,需要的朋友参考一下 测试类中的问题和解决思路 问题 在测试类中,每个测试方法都有以下两行代码: 这两行代码的作用是获取容器,如果不写的话,直接会提示空指针异常。所以又不能轻易删掉。 解决思路分析 针对上述问题,我们需要的是程序能自动
CalculatorOperationSmockTest.java 我成功地使用测试了上面的,但是我是Mockito框架的新手,当我尝试运行文件时,我得到了下面的错误,我不知道如何解决它