springboot集成測試里的redis

測試不應該訪問外部資源

員工經(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)站建設、網(wǎng)站設計、微信公眾號開發(fā)、電商網(wǎng)站開發(fā),微信小程序開發(fā),軟件按需開發(fā)等一站式互聯(lián)網(wǎng)企業(yè)服務。

對于單元測試,集成測試里,如果被測試的方法中使用到了redis,你需要去模擬一個單機環(huán)境的redis server,因為只有這樣,你的測試才是客觀的,即不會因為網(wǎng)絡和其它因素影響你測試的準確性!

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,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對創(chuàng)新互聯(lián)網(wǎng)站的支持!

本文題目:springboot集成測試里的redis
文章起源:http://muchs.cn/article38/picdsp.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、網(wǎng)站收錄、網(wǎng)站維護手機網(wǎng)站建設、ChatGPT搜索引擎優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)