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!");
    }
相关文章
相关标签/搜索