国产探花免费观看_亚洲丰满少妇自慰呻吟_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教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黄龙县| 新宁县| 肥东县| 济宁市| 阳谷县| 唐山市| 民权县| 新巴尔虎左旗| 洪江市| 辰溪县| 鲁山县| 安国市| 万年县| 泽州县| 乌拉特中旗| 临潭县| 来宾市| 普宁市| 简阳市| 罗定市| 文成县| 通渭县| 沭阳县| 惠水县| 行唐县| 启东市| 都安| 木里| 永昌县| 都兰县| 同心县| 三门峡市| 栾川县| 奉化市| 岳阳县| 巴青县| 柳林县| 扎鲁特旗| 河池市| 独山县| 河池市|