В классе страницы должны ли методы действия иметь тип возвращаемого значения в качестве имени класса или использование возвращаемого типа void является хорошей практикой? - PullRequest
0 голосов
/ 06 февраля 2020
public class HomePage {

    public HomePage clickAboutUs1Link() {
        aboutUs1.click();
        return this;
    }

    public void clickAboutUs1Link() {
        aboutUs1.click();    
    }
}

Я буду вызывать метод действия в моем тестовом классе. Так есть ли какое-либо преимущество или недостаток использования любого из них при использовании объектной модели страницы с веб-драйвером Selenium?

1 Ответ

1 голос
/ 06 февраля 2020

Этот вопрос будет более понятным, если у вас будет больше методов. Рассмотрим эти классы

public class HomePage {

    public AboutUsPage clickAboutUsLinkAndGoToAboutUsPage() {
        aboutUs1.click();
        return new AboutUsPage();
    }   

    public HomePage typeToField() {
        aboutUs1.click();
        return this;
    }

    public HomePage clickOnChecbox() {
        aboutUs1.click();
        return this;
    }
}

class AboutUsPage {

    public boolean isAboutUsPageDisplayed() {
        return someElement.isDisplayed();
    }
}

Теперь вы можете использовать цепочку методов в тесте для создания потока

public class TestAboutUsLink {

    boolean isDisplayed =
    new HomePage()
        .typeToField()
        .clickOnChecbox()
        .clickAboutUsLinkAndGoToAboutUsPage()
        .isAboutUsPageDisplayed();

    assertTrue(isDisplayed);
}

И если каждый метод ничего не возвращал

public class TestAboutUsLink {

    HomePage homePage = new HomePage();
    homePage.typeToField();
    homePage.clickOnChecbox();
    homePage.clickAboutUsLinkAndGoToAboutUsPage()

    AboutUsPage aboutUsPage = new AboutUsPage(); 
    boolean isDisplayed = aboutUsPage.isAboutUsPageDisplayed();

    assertTrue(isDisplayed);
}

Это субъективная проблема, но я нахожу более понятным иметь поток тестов с неявным созданием объектов страницы (насколько это касается теста), чем разбивать его на части.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...