springboot集成測試里的redis
測試不應(yīng)該訪問外部資源
對于單元測試,集成測試里,如果被測試的方法中使用到了redis,你需要去模擬一個單機環(huán)境的redis server,因為只有這樣,你的測試才是客觀的,即不會因為網(wǎng)絡(luò)和其它因素影響你測試的準確性!
redis的內(nèi)嵌版本embedded-redis
它的源碼在github上,大家有興趣可以去看看,非常精簡,而且還提供了單機,集群,哨兵多種redis環(huán)境,完全可以滿足我們的測試需要。
添加依賴
//implementation 'org.springframework.boot:spring-boot-starter-data-redis', //testImplementation 'com.github.kstyrc:embedded-redis:0.6',
添加mock
package com.lind.springOneToOne.mock;
import org.springframework.stereotype.Component;
import redis.embedded.RedisServer;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import java.io.IOException;
@Component
public class RedisServerMock {
private RedisServer redisServer;
/**
* 構(gòu)造方法之后執(zhí)行.
*
* @throws IOException
*/
@PostConstruct
public void startRedis() throws IOException {
redisServer = new RedisServer(6379);
redisServer.start();
}
/**
* 析構(gòu)方法之后執(zhí)行.
*/
@PreDestroy
public void stopRedis() {
redisServer.stop();
}
}
添加測試
public class StringValueTest extends BaseTest {
@Autowired
RedisTemplate redisTemplate;
@Test
public void setTest() throws Exception {
redisTemplate.opsForValue().set("ok", "test");
System.out.println(
"setTest:" + redisTemplate.opsForValue().get("ok")
);
}
}
對于內(nèi)嵌redis就說到這到,下回有機會說一下內(nèi)嵌的mongodb,它也是集成測試時不能缺少的組件!
總結(jié)
以上所述是小編給大家介紹的springboot集成測試里的redis,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
SpringCloud中的Feign遠程調(diào)用接口傳參失敗問題
這篇文章主要介紹了SpringCloud中的Feign遠程調(diào)用接口傳參失敗問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03
logback ThrowableProxyConverter類源碼流程解析
這篇文章主要為大家介紹了logback ThrowableProxyConverter類源碼流程解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-12-12
SpringCloud Netflix Ribbon源碼解析(推薦)
這篇文章主要介紹了SpringCloud Netflix Ribbon源碼解析,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-03-03
SpringBoot3.0自定stater模塊的操作流程(chatGPT提供的49種場景)
SpringBoot3.0發(fā)布等重磅陸消息續(xù)進入大家的視線,而本文作者將以技術(shù)整合的角度,帶大家把最火的兩個技術(shù)整合在一起,通過本文學(xué)習(xí)你將熟悉SpringBoot3.0自定stater模塊的操作流程,并熟悉OpenAi為chatGPT提供的49種場景,感興趣的朋友一起看看吧2022-12-12
SpringMvc靜態(tài)資源訪問實現(xiàn)方法代碼實例
這篇文章主要介紹了SpringMvc靜態(tài)資源訪問實現(xiàn)方法代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-08-08

