【发布时间】:2014-10-31 15:45:37
【问题描述】:
您好,我想测试 generateKey 方法和 Dispatcher 发送的消息。我试图模拟类和公共方法 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)));
}
};
}
};
}
}
【问题讨论】:
-
已经有很多关于测试私有方法的材料——包括other answers on SO,如果你在谷歌上搜索到the text of this question's subject line,就包括最热门的。这些能回答你的问题吗?
-
我见过反射的使用,但我想看看是否有更清洁的方法来验证该方法。我是 JMockit 的新手,对模拟对象没有太多经验。
标签: java unit-testing mocking static-methods jmockit