在实现一个服务器项目时, 使用了 memcached 服务, 下面需要在 junit 单元测试中实现对 memcache 服务的验证工作.
为了能让 junit 能在不依赖测试环境的情况下执行, 所以不应该需要测试环境中搭建 memcached 才能执行测试. 所以解决方案一般有两种:
- 试用 mock 完整测试的桩
- 在执行测试的时候, 本地启动一个轻量级的 memcached 服务端
本文使用的是第二种方案, 下面介绍详细的实现过程.
jmemcached 是一个 Java 版的 memcached 缓存服务器, 基本上跟 memcached 是兼容的. jmemcached 是使用 Apache MINA 作为无堵塞的网络IO操作, 但从 0.7 版本开始 jmemcached 改用了 Netty 作为网络IO操作包.
我这里直接对 xmemcached 作为 memcached 客户端, 我在外面做了一层包装:
1 | package com.vipshop.passport.util; |
实现单元测试的代码就相对简单多了:
1 | package com.vipshop.passport.util; |