これは私がテストしたいコードです:
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));
}
}
したがって、基本的に、有効なユーザー名 (「John」など) を入力すると、このテストは成功します。これは、GUI が表示されず、単純にチェックが返されるためです。これは true です。
ただし、「 」などの無効なユーザー名 (空白スペースのみ) を入力すると、false が返されるはずですが、GUI の起動が原因ではありません。
GUIの起動とメソッドの終了だけを停止するにはどうすればよいですか。私はmockitoが便利になるかもしれないと思っていましたが、理論を学んだだけで、実際に実装したことはありません!
前もって感謝します!