我是新来的Java,我想写一个JUnit测试的名称校验类模拟弹出对话框中的按钮点击的方法?
我想测试下面的代码:
public boolean createNewUMLClassFromString(String className) {
if(validate(className)){
....
}
return false;
}
private boolean validate(String userInput){
/* check if it's empty */
if (userInput.equals("")){
JOptionPane.showMessageDialog(null, "Class Name can't be empty");
return false;
}
return true;
}
所以我写了一个JUnit
public void emptyStringCheckerTest(){
assertFalse("new class can not be empty", um.createNewUMLClassFromString("do"));
}
它的工作原理,但在测试运行过程中,我需要每次点击弹出对话框。
所以有人可以告诉我如何在测试过程中模拟按钮点击,还是有更好的方法来编写测试?谢谢?
你的答案看起来很有希望,但是我仍然不知道如何在测试中覆盖'showCannotBeEmptyDialog()'方法?这是用户交互进行单元测试的最佳做法吗? – mko 2013-03-24 19:00:45
@yozloy不用测试该类的实例,而是使用该方法重写测试扩展。不确定它是否是“最佳实践”,但我已经多次使用它,并且更喜欢它在我看到的“Robot”和“doClick”解决方案中 – Robin 2013-03-24 19:45:11