国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Java > 正文

Spring Boot單元測試中使用mockito框架mock掉整個RedisTemplate的示例

2024-07-14 08:43:03
字體:
來源:轉載
供稿:網友

概述

當我們使用單元測試來驗證應用程序代碼時,如果代碼中需要訪問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")@Configurationpublic 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掉其他操作,自行加上即可。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對VeVb武林網的支持。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 红安县| 德化县| 梧州市| 芷江| 汽车| 商南县| 灵丘县| 吕梁市| 沂南县| 山阳县| 济宁市| 平安县| 张北县| 夏津县| 锦屏县| 独山县| 华亭县| 保亭| 富民县| 嘉禾县| 朝阳区| 宕昌县| 巩义市| 双城市| 宣武区| 含山县| 德令哈市| 墨脱县| 呼和浩特市| 铜梁县| 邢台市| 大同市| 清流县| 新野县| 南阳市| 崇明县| 广元市| 巴彦县| 胶州市| 泽库县| 旬邑县|