单元测试之embedded-redis

基本上最Popular的嵌入式redis是以下这个项目
https://github.com/kstyrc/embedded-redis

但这个项目也存在维护不力的问题。
1) 大量缺陷未修复。在笔者写下此文时,这个项目上未关闭的缺陷issues 有33个。 并且CI 显示目前这个版本在windows上的构建是失败的。

  1. 缺少更新。这个项目的最近一次更新在2016年6月。

经过试用之后,笔者发现,以下这个案例能够顺利通过。

package redis.embedded;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;

import static org.junit.Assert.assertEquals;

public class RedisServerClusterTest {

    private RedisServer redisServer1;
    private RedisServer redisServer2;

    @Before
    public void setUp() throws Exception {
        redisServer1 = RedisServer.builder()
                .port(6300)
                .build();

        redisServer2 = RedisServer.builder()
                .port(6301)
                .slaveOf("localhost", 6300)
                .build();

        redisServer1.start();
        redisServer2.start();
    }

    @Test
    public void testSimpleOperationsAfterRun() throws Exception {
        JedisPool pool = null;
        Jedis jedis = null;
        try {
            pool = new JedisPool("localhost", 6300);
            jedis = pool.getResource();
            jedis.mset("abc", "1", "def", "2");

            assertEquals("1", jedis.mget("abc").get(0));
            assertEquals("2", jedis.mget("def").get(0));
            assertEquals(null, jedis.mget("xyz").get(0));
        } finally {
            if (jedis != null)
                pool.returnResource(jedis);
        }
    }


    @After
    public void tearDown() throws Exception {
        redisServer1.stop();
        redisServer2.stop();
    }
}

但是在用例执行完之后, 程序似乎留下了一些未关闭的进程,可能会导致资源泄露和可能的端口冲突。 因此,可能需要去优化redisServer的stop方法,或者干脆通过在@After方法中手工去杀进程的方式将运行环境清理干净。


redis_firewall.JPG
redis_process_detail.JPG
redis_process_list.JPG
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,790评论 19 139
  • 超强、超详细Redis入门教程 转载2017年03月04日 16:20:02 16916 转载自: http://...
    邵云涛阅读 17,643评论 3 313
  • 文章已经放到github上 ,如果对您有帮助 请给个star[https://github.com/qqxuanl...
    尼尔君阅读 2,348评论 0 22
  • 是梦,让我苏醒,又让我沉沦,我甘愿在梦里睡去。 很长一段时间,我不愿睡去,确切的说是,我想睡去...
    大白小姐阅读 444评论 0 0
  • 参考:http://www.cnblogs.com/cornell/p/3833955.htmlhttps://l...
    一点也不想吃辣阅读 1,632评论 0 0

友情链接更多精彩内容