Selenium测试类中的SoftAssert

时间:2016-12-27 18:51:17

标签: java selenium testng

我在测试类中有一个测试方法,我想验证一些东西,只有在我在这个特定的测试方法中软断言后才会失败。

但是,我觉得我的测试方法因处理故障而变得混乱。我还没有找到任何最佳实践。有任何想法吗?如果我将断言移动到页面对象类中,那么它也会有点混乱。

@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();

}

2 个答案:

答案 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方法的情况下,你的测试将不会继续断言失败。

如果有任何验证方法,即使验证失败,您的测试仍会继续,如果一个或多个验证失败,测试的最终状态将失败。