

springboot~集成测试里的redis
source link: http://www.cnblogs.com/lori/p/9946153.html?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

测试不应该访问外部资源
对于单元测试,集成测试里,如果被测试的方法中使用到了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,它也是集成测试时不能缺少的组件!
Recommend
-
90
HTTP 404 - SegmentFault 当前页面无法访问,可能没权限或已删除 长老们,去别处看看吧 彡(-_-;)彡回首页...
-
70
前言 本章节开始介绍数据访问方面的相关知识点。对于后端开发者而言,和数据库打交道是每天都在进行的,所以一个好用的ORM框架是很有必要的。目前,绝大部分公司都选择MyBatis框架作为底层数据库持久化框架。 多说几...
-
67
前言 上几节讲了利用 Mybatis-Plus 这个第三方的ORM框架进行数据库访问,在实际工作中,在存储一些非结构化或者缓存一些临时数据及热点数据时,一般上都会用上 mongodb 和 redis 进行...
-
60
前言 上节讲了缓存数据库 redis 的使用,在实际工作中,一般上在系统或者应用间通信或者进行异步通知(登录后发送短信或者邮件等)时,都会使用消息队列进行解决此业务场景的解耦问题。这章节讲解下消息队列
-
45
前言本文将使用Maven、gRPC、Protocolbuffers、Docker、Envoy等工具构建一个简单微服务工程,笔者所使用的示例工程是以前写的一个Java后端工程,因为最近都在学习微服务相关的知识,所以利用起来慢慢的把这个工程做成微服务化应用。在实践过程踩过很多坑,主要是经...
-
66
SpringBoot集成FastDFS+Nginx整合基于Token的防盗链
-
64
一般情况下网站对数据库的读要比写多多了,所以当数据量大了的时候,使用读写分离是很有必要的 spring提供了数据源路由的类,正好拿它来实现一下 创建项目 简单的springboot项目,依赖有mybatis,mysql,aspect
-
20
前言 我们知道项目的监控是尤为重要的,但是我们如果用jdk 自带的jconsole 和jvisualvm 的话会非常繁琐,且界面不是很友好。之前我们使用了spring boot 项目,但是都没有对项目有一个很好的监控。在spring 家族中有 spring-boo...
-
22
工程结构图:提前说明:注意:JavaBean必须实现序列化,不然数据无法存入Redis。public class User implements Serializable1.SpringBoot集成Redis实现缓存首先需要引入SpringBoot的Redis依赖:
-
4
SpringBoot 2.7 .2实战基础 - 09 - 集成 Redis & 异步任务1 集成RedisSpringBoot 提供了整合 Redis 的 starter,使用非常简单。1.1 添加依赖在 pom.xml 中添加 redis 的 starter:
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK