0
這是我想測試代碼:我如何使用Junit測試這個簡單的方法?
public class ValidateRegisterInputController {
public boolean validateInputHandle(UserDataObject user1){
ValidateInput validateinput = new ValidateInput();
boolean check = true;
if (!validateinput.validateUsername(user1.getUsername())) {
check = false;
BanUserGUI bangui = new BanUserGUI();
bangui.displayBanGUI();
}
return check;
}
當我嘗試但是運行測試,它會啓動「bangui.displayBanGUI()」方法,併到控制檯請求輸入,從來不意味着測試正確完成運行。這是迄今爲止我的測試:
public class ValidateRegisterInputControllerTest {
@Test
public void testValidateRegisterInputControllervalidateInputHandleReturnsStringvalidWhenValidInputIsMade(){
UserDataObject user1 = new UserDataObject(" ", "password1", "John", "Smith", 1);
ValidateRegisterInputController controller = new ValidateRegisterInputController();
assertTrue(controller.validateInputHandle(user1));
}
}
所以基本上,如果我輸入有效的用戶名(例如,「約翰」),本次測試將通過,因爲它不會顯示GUI,並會簡單的返回檢查,這是真正。但是,如果我輸入一個無效的用戶名如「」(這只是空格),那麼它應該返回false,但它不會由於GUI啓動。
我該如何阻止它啓動GUI並完成該方法。我認爲mockito可能會派上用場,但我只是學會了它的理論,從未真正實現它!
在此先感謝!
如果你想要測試GUI,爲什麼要麻煩測試這個方法?如果沒有GUI,你基本上是在測試Java是否工作。此外,顛倒布爾測試將使該方法讀得更乾淨,海事組織,我不會使用臨時變量。 –
感謝您的回答。如果我想測試一下,如果我輸入一個無效的用戶名,圖形用戶界面將運行,是否有辦法做到這一點? – DeaIss