springboot集成测试里的redis
测试不应该访问外部资源
对于单元测试,集成测试里,如果被测试的方法中使用到了redis,你需要去模拟一个单机环境的redis server,因为只有这样,你的测试才是客观的,即不会因为网络和其它因素影响你测试的准确性!
redis的内嵌版本embedded-redis
它的源码在github上,大家有兴趣可以去看看,非常精简,而且还提供了单机,集群,哨兵多种redis环境,完全可以满足我们的测试需要。
添加依赖
//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;
/**
* 构造方法之后执行.
*
* @throws IOException
*/
@PostConstruct
public void startRedis() throws IOException {
redisServer = new RedisServer(6379);
redisServer.start();
}
/**
* 析构方法之后执行.
*/
@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")
);
}
}
对于内嵌redis就说到这到,下回有机会说一下内嵌的mongodb,它也是集成测试时不能缺少的组件!
总结
以上所述是小编给大家介绍的springboot集成测试里的redis,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
相关文章
SpringCloud中的Feign远程调用接口传参失败问题
这篇文章主要介绍了SpringCloud中的Feign远程调用接口传参失败问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-03-03
logback ThrowableProxyConverter类源码流程解析
这篇文章主要为大家介绍了logback ThrowableProxyConverter类源码流程解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-12-12
SpringCloud Netflix Ribbon源码解析(推荐)
这篇文章主要介绍了SpringCloud Netflix Ribbon源码解析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2021-03-03
SpringBoot3.0自定stater模块的操作流程(chatGPT提供的49种场景)
SpringBoot3.0发布等重磅陆消息续进入大家的视线,而本文作者将以技术整合的角度,带大家把最火的两个技术整合在一起,通过本文学习你将熟悉SpringBoot3.0自定stater模块的操作流程,并熟悉OpenAi为chatGPT提供的49种场景,感兴趣的朋友一起看看吧2022-12-12


最新评论