• embedded-redis在单元测试中的使用


    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!");
        }
  • 相关阅读:
    第0次作业
    第4次作业
    第3次作业
    第2次作业
    C#浮点数保留位数
    第0次作业
    软件工程第4次作业
    软件工程第3次作业
    软件工程第2次作业
    软件工程第1次作业
  • 原文地址:https://www.cnblogs.com/sonofelice/p/8931955.html
Copyright © 2020-2023  润新知