我在测试类中有一个测试方法,我想验证一些东西,只有在我在这个特定的测试方法中软断言后才会失败。
但是,我觉得我的测试方法因处理故障而变得混乱。我还没有找到任何最佳实践。有任何想法吗?如果我将断言移动到页面对象类中,那么它也会有点混乱。
@Test
public void test() {
// steps here
// then asserts here
SoftAssert soft = new SoftAssert();
String expectedHeaderText = "foo";
soft.assertTrue(pageObjectClass.isHeaderPresent(), "Unable to find the Header page object.");
soft.assertTrue(pageObjectClass.getHeader().contains(expectedHeaderText),
String.format("Expected to find '%s'. Page actually shows '%s'", expectedHeaderText, pageObjectClass.getHeader()));
// more asserts
sa.assertAll();
}
答案 0 :(得分:0)
检查以下惯例
@Test
public void test() {
// steps here
// then asserts here
SoftAssert soft = new SoftAssert();
String expectedHeaderText = "foo";
Boolean checkHeader=pageObjectClass.isHeaderPresent() //Change the method on POM pageObjectClass such that it returns the true or false
soft.assertTrue(checkHeader,true);
String checkHeaderContent=pageObjectClass.getHeader()//change method on POM pageObjectClass to return a string
soft.assertTrue(checkHeaderContent.contains(expectedHeaderText), String.format("Expected to find '%s'. Page actually shows '%s'", expectedHeaderText, checkHeaderContent));
// more asserts
sa.assertAll();
}
答案 1 :(得分:0)
您可以查看提供QMetry Automation Framework方法的assertion and verification。例如:
//verify element present
firstName.verifyPresent();
firstName.assertPresent();
//verify Text of Element
firstName.verifyText("First User");
firstName.assertText("First User");
//verify Text of element with StringMatchers conditions
firstName.verifyText(StringMatcher.contains("First User"));
firstName.assertText(StringMatcher.contains("First User"),"Username Validation");
在assert方法的情况下,你的测试将不会继续断言失败。
如果有任何验证方法,即使验证失败,您的测试仍会继续,如果一个或多个验证失败,测试的最终状态将失败。