【发布时间】:2014-06-10 19:54:31
【问题描述】:
我有一个包含 spymemcached 客户端的类,我想编写一些 JUnit 测试来测试 getValue 和 addKey 方法是否有效。
问题是从测试服务器无法访问 spymemcached 服务器,所以我想这里需要一些模拟。
我的简化类看起来像这样:
public class SpyMemcachedClientWrapper {
private MemcachedClient spyMemcachedClient;
public SpyMemcachedClientWrapper()
spyMemcachedClient = new MemcachedClient(new ConnectionFactoryBuilder().build(),
AddrUtil.getAddresses("192.168.1.122:11211"));
}
public Object getValue(Object key) {
Object obj = null;
Future<Object> f = null;
f = spyMemcachedClient.asyncGet(key);
try {
obj = f.get(2000, TimeUnit.MILLISECONDS);
} catch (TimeoutException ex) {
f.cancel(false);
}
return obj;
}
public boolean addKey(Object key, Object value) {
OperationFuture<Boolean> t = spyMemcachedClient.set(key, 0, value);
return t.getStatus().isSuccess();
}
}
您能否给我一些提示或最佳实践建议我该如何为这个类编写 SpyMemcachedClientWrapperTest?我在想我可以使用 Mockito 或 EasyMock(Mockito 更可取,但如果 EasyMock 在这里更好,那也很好)但到目前为止,我无法弄清楚在这种情况下编写测试的通常首选方式是什么。
也可以举个例子。
非常感谢,
【问题讨论】:
标签: java unit-testing junit mocking spymemcached