測試不應(yīng)該訪問外部資源
員工經(jīng)過長期磨合與沉淀,具備了協(xié)作精神,得以通過團隊的力量開發(fā)出優(yōu)質(zhì)的產(chǎn)品。成都創(chuàng)新互聯(lián)公司堅持“專注、創(chuàng)新、易用”的產(chǎn)品理念,因為“專注所以專業(yè)、創(chuàng)新互聯(lián)網(wǎng)站所以易用所以簡單”。公司專注于為企業(yè)提供網(wǎng)站建設(shè)、網(wǎng)站設(shè)計、微信公眾號開發(fā)、電商網(wǎng)站開發(fā),微信小程序開發(fā),軟件按需開發(fā)等一站式互聯(lián)網(wǎng)企業(yè)服務(wù)。
對于單元測試,集成測試里,如果被測試的方法中使用到了redis,你需要去模擬一個單機環(huán)境的redis server,因為只有這樣,你的測試才是客觀的,即不會因為網(wǎng)絡(luò)和其它因素影響你測試的準(zhǔn)確性!
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ù)大家的。在此也非常感謝大家對創(chuàng)新互聯(lián)網(wǎng)站的支持!