SoftAssert в классе испытания Селена

У меня есть метод теста внутри тестового класса, где я хочу проверить пару вещей, только потерпеть неудачу после того, как я мягко утверждаю В этом конкретном методе теста.

Но я чувствую, что мой метод тестирования становится грязным с обработкой сбоев. Я не смог найти лучших практик в этом. Есть идеи? Если я перемещаю утверждения в класс Page object, там тоже будет немного грязно.

@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 ответа

  1. Проверить ниже конвенции

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

    }

  2. Вы можете проверить Qmetry Automation Framework, которая предоставила методы утверждения и проверки. Например:

    //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 тест не будет продолжен при ошибке assert.

    В случае любого метода проверки, ваш тест будет продолжен, даже если проверка не удалась, и окончательный статус теста будет удален, если одна или несколько проверок не удалось.