我是新來的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