zoukankan      html  css  js  c++  java
  • 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!");
        }
  • 相关阅读:
    Linux socket本地进程间通信之TCP
    Linux socket本地进程间通信之UDP
    Linux I/O多路转接之select函数
    静态库和动态库的分析
    点云数据 网络
    maskrcnn-benchmark训练注意事项
    redhat7安装maskrcnn-benchmark注意事项
    特征选择
    docker
    可视化
  • 原文地址:https://www.cnblogs.com/sonofelice/p/8931955.html
Copyright © 2011-2022 走看看