Каков наилучший способ создания объектов при создании шагов в объектной модели Java Page?Практическая модель объектной модели Java - новые объекты
Кто-нибудь знает, как скомпилированы скрипты огурца?
Я бы предположил, что если все будет построено и выполнено, второй или третий вариант ниже может быть лучшим подходом.
Если скомпилированы только шаги, связанные с выполняемым тестом, я бы предположил, что это будет первый.
У меня есть следующий пример:
private LoginPage loginPage = new LoginPage(driver);
@Given("^I have logged in as customer with two stored cards$")
public void iHaveLoggedInAsCustomerWithTwoStoredCards() throws Throwable {
new HomePage(driver).clickLoginButton();
loginPage.enterEmail("[email protected]");
loginPage.enterPassword("Password1");
loginPage.clickLogin();
}
@Given("^I have logged in as customer with expired card$")
public void iHaveLoggedInAsCustomerWithExpiredCard() throws Throwable {
new HomePage(driver).clickLoginButton();
loginPage.enterEmail("[email protected]");
loginPage.enterPassword("Password1");
loginPage.clickLogin();
}
@Given("^the user logged in as customer with three stored cards$")
public void theUserLoggedInAsCustomerWithThreeStoredCards() throws Throwable {
new HomePage(driver).clickLoginButton();
loginPage.enterEmail("[email protected]");
loginPage.enterPassword("Password1");
loginPage.clickLogin();
}
Все вышеперечисленные шаги (плюс еще в том же классе LoginSteps.java) начинаются с
new HomePage(driver).clickLoginButton();
Это лучший подход, или лучше создать один экземпляр?
private LoginPage loginPage = new LoginPage(driver);
private HomePage homePage = new HomePage(driver);
@Given("^I have logged in as customer with two stored cards$")
public void iHaveLoggedInAsCustomerWithTwoStoredCards() throws Throwable {
homePage.clickLoginButton();
loginPage.enterEmail("[email protected]");
loginPage.enterPassword("Password1");
loginPage.clickLogin();
}
@Given("^I have logged in as customer with expired card$")
public void iHaveLoggedInAsCustomerWithExpiredCard() throws Throwable {
homePage.clickLoginButton();
loginPage.enterEmail("[email protected]");
loginPage.enterPassword("Password1");
loginPage.clickLogin();
}
@Given("^the user logged in as customer with three stored cards$")
public void theUserLoggedInAsCustomerWithThreeStoredCards() throws Throwable {
homePage.clickLoginButton();
loginPage.enterEmail("[email protected]");
loginPage.enterPassword("Password1");
loginPage.clickLogin();
}
ИЛИ является еще более эффективным, чтобы иметь экземпляра все страницы в классе «baseSteps», который проходит LoginSteps?
public class LoginSteps extends BaseSteps {
@Given("^I have logged in as customer with two stored cards$")
public void iHaveLoggedInAsCustomerWithTwoStoredCards() throws Throwable {
homePage.clickLoginButton();
loginPage.enterEmail("[email protected]");
loginPage.enterPassword("Password1");
loginPage.clickLogin();
}
@Given("^I have logged in as customer with expired card$")
public void iHaveLoggedInAsCustomerWithExpiredCard() throws Throwable {
homePage.clickLoginButton();
loginPage.enterEmail("[email protected]");
loginPage.enterPassword("Password1");
loginPage.clickLogin();
}
@Given("^the user logged in as customer with three stored cards$")
public void theUserLoggedInAsCustomerWithThreeStoredCards() throws Throwable {
homePage.clickLoginButton();
loginPage.enterEmail("[email protected]");
loginPage.enterPassword("Password1");
loginPage.clickLogin();
}
}
public baseSteps {
protected LoginPage loginPage = new LoginPage(driver);
protected HomePage homePage = new HomePage(driver);
}
Я дам, что пойду и посмотрю, смогу ли я найти какую-либо разницу. Причиной этого является то, что я буду использовать их на постоянной основе, и мне нужно, чтобы они были максимально эффективными. Спасибо за вашу помощь. –