1. redis 单测依赖选择
涉及到Redis的单元测试,一般使用embeded-redis或redis-mock
embeded-redis 是jar 包里放了redis 的可执行文件,在执行单测时候会解压可执行文件,在linux下会找不到对应的 依赖文件 lib.so 而报错 Can't start redis server. Check logs for details
redis-mock (ai.grakn) 则在 2018 年以后停止更新了
本文采用 microwww 的redis-mock
2. 操作步骤
2.1 添加依赖
项目地址
https://github.com/microwww/redis-mock
<dependency>
<groupId>com.github.microwww</groupId>
<artifactId>redis-server</artifactId>
<version>0.3.0</version>
<scope>test</scope>
</dependency>
2.2 添加配置类
import com.github.microwww.redis.RedisServer;
import java.io.IOException;
import org.springframework.boot.autoconfigure.data.redis.RedisProperties;
import org.springframework.boot.test.context.TestConfiguration;
@TestConfiguration
public class TestRedisConfiguration {
private static RedisServer redisServer;
public TestRedisConfiguration(RedisProperties redisProperties) {
try {
if (redisServer == null) {
redisServer = new RedisServer();
redisServer.listener(redisProperties.getHost(), redisProperties.getPort());
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
2.3 写单测类
@RunWith(MockitoJUnitRunner.class)
@DisplayName("")
@SpringBootTest(classes = TestRedisConfiguration.class)
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
class SolutionTest {
// 单测代码
}