1 背景
参考链接:https://github.com/kstyrc/embedded-redis
2 使用
2.1 引入依赖
<dependency>
<groupId>com.github.kstyrc</groupId>
<artifactId>embedded-redis</artifactId>
<version>0.6</version>
</dependency>
2.2 单元测试中的使用
可以直接通过两行代码就可以启动:
redisServer = new RedisServer(6379); redisServer.start(); // do something redisServer.stop();
3 遇到的问题以及解决思路
一般我们在写单元测试的时候,会在一个测试类中写很多的测试方法。那么我们一般会选择在@Before方法中启动RedisServer,在@After方法中进行close。
但是redis是单线程的,每一个@Test方法都会调用一次@After方法,把redis-server关掉了,所以你可能会碰到下面的错误:
这里有一个解决思路,把@Before改成@BeforeClass,@After改成@AfterClass,并且把方法改成静态的。
private static RedisServer redisServer; @BeforeClass public static void beforeClass() throws Exception { redisServer = new RedisServer(6379); redisServer.start(); } @Test ……………… @Test @AfterClass public static void afterClass() { redisServer.stop(); log.info("Embedded redis stop!"); }
转载于:https://www.cnblogs.com/sonofelice/p/8931955.html