embedded-redis在單元測試中的使用

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!");
    }
相關文章
相關標籤/搜索