早上好,我正在为一个javafx类做一个测试类,我正在尝试立即控制错误。当发生错误时,会向我显示一个对话框警报,并带有一条消息,解释该错误。我想将此消息与我的测试课中的其他消息进行比较。那就是我尝试的最后一件事。登录类别
catch (ServerConnectionErrorException ex) {
LOGGER.warning("LoginWindowController: Server connection error");
Alert alert = new Alert(Alert.AlertType.ERROR);
alert.setTitle("Server Error");
alert.setContentText("Unable to connect with server");
Label serverErrorContext = new Label();
serverErrorContext.setText(alert.getContentText());
serverErrorContext.setId("serverErrorContext");
alert.showAndWait();
}
测试类别
@Test
public void test4_ConnectionError(){
clickOn("#txtLogin");
write("user");
clickOn("#txtPass");
write("BBccd1234");
clickOn("#btLogin");
FxAssert.verifyThat("#serverErrorContext",LabeledMatchers.hasText("Unable to connect with server"));
clickOn(".button");
}
最后检查一下contentText是否与应该显示的消息相同,我决定为每个警报声明一个按钮并为其分配一个ID。每个ID都是唯一的,因此机器人无法单击其他按钮,并且如果提示未正确显示,则测试错误。主要类别
Alert alert = new Alert(Alert.AlertType.ERROR);
alert.setTitle("Server Error");
alert.setContentText("Unable to connect with server");
Button errorButton = (Button) alert.getDialogPane().lookupButton(ButtonType.OK);
errorButton.setId("serverConnectionError");
alert.showAndWait();
测试类别
clickOn("#txtLogin");
write("user");
clickOn("#txtPass");
write("BBccd1234");
clickOn("#btLogin");
FxAssert.verifyThat("#serverConnectionError",isEnabled());
clickOn("#serverConnectionError");