springboot集成测试里的redis

网友投稿 501 2023-01-19


springboot集成测试里的redis

测试不应该访问外部资源

对于单元测试,集成测试里,如果被测试的方法中使用到了redis,你需要去模拟一个单机环境的redis server,因为只有这样,你的测试才是客观的,即不会因为网络和其它因素影响你测试的准确性!

redis的内嵌版本embedded-redis

它的源码在github上,大家有兴趣可以去看看,非常精简,而且还提供了单机,集群,哨兵多种redis环境,完全可以满足我们的测试需要。

添加依赖

//implementation

'org.springframework.boot:spring-boot-starter-data-redis',

//testImplementation

'com.github.kstyrc:embedqBRfGnZyBbded-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,希望对大家有所帮助,如果大家有任何疑问请给我留言,会及时回复大家的。在此也非常感谢大家对我们网站的支持!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:科研研发管理平台网站建设(研发技术平台)
下一篇:关于post测试例子的信息
相关文章

 发表评论

暂时没有评论,来抢沙发吧~