我正在做一个UI操作,有两种可能性;
1. I get an info message OR
2. I get a success message
现在我需要在Selenium中断言相同的内容。
同样,UI上只有一个可能的结果。。。要么我收到信息,要么我收到成功信息。。
因此,基本上我需要断言以下任何一个;
assertThat(getAlertMessage("info", "cancel info message").getText(), equalTo("cancel info message"));
assertThat(getAlertMessage("success", "cancel success message").getText(), equalTo("cancel success message"));
我应该尝试接球还是使用if…else?
您可以使用将布尔值作为参数的断言方法,只需执行条件OR检查:
对于测试NG:
String alertMessage = getAlertMessage("info", "cancel info message").getText();
String infoMessage = "cancel info message";
String successMessage = "cancel success message";
assertTrue(alertMessage.equals(infoMessage) || alertMessage.equals(successMessage), "Alert message does not equal either info or success message");
JUnit:
String alertMessage = getAlertMessage("info", "cancel info message").getText();
String infoMessage = "cancel info message";
String successMessage = "cancel success message";
assertTrue("Alert message does not equal either info or success message", alertMessage.equals(infoMessage) || alertMessage.equals(successMessage));
如果你正在使用Hamcrest火柴,你可以这样做:
assertThat(alertMessage, anyOf(equalTo(infoMessage), equalTo(successMessage)));