2015-07-28 46 views
1

我有一個類的私有無效方法。我想用Jmockit測試它,有沒有一種方法?使用jmockit測試private void method

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"); 
} 

回答

1

可以通過調用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()); 
} 
6

在我看來,每個私有方法都必須在同一個類的公共方法中使用。所以測試一下公共方法它會自動測試這個私有方法。