我有一个类的私有void方法。我想用Jmockit测试它,有没有方法?
private void logRetry(IOException ex) {
if (log.isWarnEnabled()) {
log.warn("I/O exception (" + ex.getClass().getName() + ") caught when processing request : "
+ ex.getMessage());
}
if (log.isDebugEnabled()) {
log.debug(ex.getMessage(), ex);
}
log.info("Re-Trying the request on next available host");
}
答案 0 :(得分:5)
在我看来,每个私有方法必须在同一个类的公共方法中使用某个地方。因此,测试该公共方法,它将自动测试该私有方法。
答案 1 :(得分:2)
可以通过在JMockit中调用Deencapsulation类来调用私有方法。
invoke(java.lang.Object objectWithMethod,
java.lang.String methodName, java.lang.Object... nonNullArgs)
在您的情况下,您可以执行类似
的操作@Test
public void testLogRetry() {
YourClass testCalss = new YourClass();
Deencapsulation.invoke(testClass, "logRetry", new IOException());
}