嗨我想測試的分配器調度的generateKey方法和消息。我試圖嘲笑類和公共方法verifyOtherDetails()。在它裏面我創建了一個期望,調度器方法有一個字面值,但它總是通過。任何幫助,將不勝感激。測試一個私有的靜態方法
請參閱我的嘗試代碼的底部謝謝。
abstract class KeyGen {
private static void generateKey(String key, String username){
if(Strings.isNullOrEmpty(key)){
Dispatcher.dispatch(new WarningString(String.format("The key is null or empty for user %s", username)));
}else{
Dispatcher.dispatch(new InfoString(String.format("The key is correct for user %s", username)));
}
}
public void verifyOtherDetails(String address, Map<String, String> favouriteFilms){
String key ="";
String username ="";
generateKey(key, username);
}
}
public class TestKeyGen {
@Test
public void testKey() {
new MockUp<KeyGen>() {
@Mock()
public void verifyOtherDetails() {
String key = "sfjhlkjhfkjdhlsk";
final String username = "Daniel";
new Expectations() {
{
Dispatcher.dispatch(new WarningString(String.format("The key is null or empty for user %s", username)));
}
};
}
};
}
}
在測試私有方法方面已經有很多材料 - 包括[其他答案在SO](http://stackoverflow.com/questions/34571),包括如果你谷歌的頂部命中[文本這個問題的主題行](https:// www .google.com/webhp?離子= 1#Q =測試%20A%20private%20Static%20method)。那些回答你的問題嗎? – yshavit 2014-10-31 15:52:57
我已經看到了使用反射,但我想看看是否有更清晰的方法來驗證方法。我是JMockit的新手,對嘲笑對象沒有太多經驗。 – 2014-10-31 16:00:29