1 背景git
參考連接:https://github.com/kstyrc/embedded-redisgithub
2 使用redis
2.1 引入依賴單元測試
<dependency>
<groupId>com.github.kstyrc</groupId>
<artifactId>embedded-redis</artifactId>
<version>0.6</version>
</dependency>
2.2 單元測試中的使用測試
能夠直接經過兩行代碼就能夠啓動:spa
redisServer = new RedisServer(6379); redisServer.start(); // do something redisServer.stop();
3 遇到的問題以及解決思路線程
通常咱們在寫單元測試的時候,會在一個測試類中寫不少的測試方法。那麼咱們通常會選擇在@Before方法中啓動RedisServer,在@After方法中進行close。code
可是redis是單線程的,每個@Test方法都會調用一次@After方法,把redis-server關掉了,因此你可能會碰到下面的錯誤:server
這裏有一個解決思路,把@Before改爲@BeforeClass,@After改爲@AfterClass,而且把方法改爲靜態的。blog
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!"); }