JUnit测试简单的GUI



我已经为类的登录页面构建了一个简单的GUI。然而,JUnit在这一点上确实让我感到困惑。根据我的理解,我不能测试按钮之类的,只能测试它们附带的功能。我有一个硬编码的密码和用户名-这是ok的每一个要求。

在我的情况下,我必须有4个测试。我想测试用户登录是否成功,是否失败,清除按钮是否有效,以及是否正在创建日志文件。

请建议我该怎么做。我的做法行不通:)我的测试用例


GUI gui = new GUI();
gui.passwordText.setText("John");
gui.userText.setText("123123");
gui.loginButton.doClick();

//      success.getText()

assertEquals("Welcome to junit.","Welcome to junit.");

}
public static void logInSucccess(String username, Boolean isLoginSuccess) {
try {
String path = "Log.txt";
File f = new File(path);
if (f.exists() && !f.isDirectory()) {
f.createNewFile();
}
String log;
if (isLoginSuccess) {
log = "n" + getTimeStamp() + " User - " + username + "-" + "login successful.";
} else {
log = "n" + getTimeStamp() + " User - " + username + "-" + "login not successful.";
}
BufferedWriter writer = new BufferedWriter(new FileWriter(path, true));
writer.write(log);
writer.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == clearButton) {
userText.setText("");
passwordText.setText("");
}
if (e.getSource() == loginButton) {
String user = userText.getText();
String password = passwordText.getText();
Boolean isLoginSuccess;
if (user.equals("John") && password.equals("123123")) {
failure.setText("");
success.setText("Log in successful");
isLoginSuccess = true;
}
else {
failure.setText("Incorect, try again");
isLoginSuccess = false;
}
logInSucccess(user, isLoginSuccess);
}
}

您可以尝试构建利用java.awt.Robot的单元测试。然而,Marathon采用了不同的方法来解决同样的问题。

相关内容

  • 没有找到相关文章

最新更新