0
這裏是方法我試圖單元測試:我應該如何模擬此方法調用?
public void setToCache(final String cacheKey, final String value) {
if (StringUtils.isEmpty(cacheKey)) {
throw new NamedSystemException(
ENamedSystemExceptionCode.ILLEGAL_ARGUMENT_EXCEPTION,
"Cache Key is null or empty.");
} else if (StringUtils.isEmpty(value)) {
throw new NamedSystemException(
ENamedSystemExceptionCode.ILLEGAL_ARGUMENT_EXCEPTION,
"Value is null or empty.");
}
final Jedis jedis = getJedisClient();
try {
jedis.set(cacheKey, value);
jedis.expire(cacheKey, 60);
} finally {
jedis.close();
}
}
我怎麼能嘲笑Jedis
對象?
基本上,你不能。你可以想象窺探對象並模擬getJedisClient(),但由於它是一種靜態方法,所以Mockito不能做任何事情。爲了使代碼可測試,避免使用靜態方法,並使用依賴注入來注入依賴關係,而不是查看它們。 –
@JBNizet我已將其更改爲實例方法。是否應該從實例中檢索jedis以及是否可以嘲弄? –
是的。 Mockito不能模擬靜態方法。 –