嗨我想测试的分配器调度的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