测试不应该访问外部资源

对于单元测试,集成测试里,如果被测试的方法中使用到了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,它也是集成测试时不能缺少的组件!

最新文章

  1. Linux常用命令(二)
  2. Codeforces 740A. Alyona and copybooks 模拟
  3. python--基础学习(三)字符串单引号、双引号、三引号
  4. C语言中qsort函数的应用
  5. netstat常见参数
  6. 修改Tomcat服务器的端口号
  7. POJ 3977
  8. 嵌入式设备上运行AllJoyn注意事项
  9. css表格表头表尾固定,表身滚动
  10. 数据表转换成json(DatatableToJson)
  11. android IllegalStateException
  12. js保留整数
  13. 前端零基础 --css转换--skew斜切变形 transfor 3d
  14. 第二阶段第九次spring会议
  15. (2)Python索引和切片
  16. python调用PHP方法
  17. Mac 安装微软雅黑字体
  18. Thinkphp 缓存和静态缓存局部缓存设置
  19. [译]Angular-ui 之 多命名视图(Multiple Named Views)
  20. 可供前端工程师选择的精彩CSS框架

热门文章

  1. APP内置react 应用与APP的交互问题
  2. Spring中bean的注入方式
  3. Charles 如何破解与连接手机进行抓包
  4. Android--APP性能测试工具GT的使用总结
  5. keras实现简单性别识别(二分类问题)
  6. go语言调度器源代码情景分析之六:go汇编语言
  7. VulDeePecker:基于深度学习的脆弱性检测系统
  8. C#EF中,使用类似于SQL中的% 模糊查询
  9. Java 在PDF文档中绘制图形
  10. Mybatis框架的简单运用