Cucumber(java)内に「マスターステップ」を作成することはできますか?Cucumber(java)内に「マスターステップ」を作成することはできますか?
たとえば、繰り返しコードを使用する多くのステップファイルを作成しました。繰り返しコードは、各ステップファイル内のブラウザなどを初期化します。
ドライバセットアップなどが格納されるマスターステップファイルを作成することも可能ですか?そのため、各ステップの前に「Cucumber Before」を使用してセットアップを実行してください。
マイコード:
public class LoginStep {
WebDriver driver;
LoginPage loginPage;
@Before
public void setUp() throws Exception {
System.setProperty("webdriver.chrome.driver",
"C:\\Users\\deltaUser\\Desktop\\CucumberFramework\\PimCucumberFramework\\src\\test\\java\\resources\\other\\chromedriver.exe");
this.driver = new ChromeDriver();
this.driver.manage().window().maximize();
this.driver.manage().timeouts().pageLoadTimeout(60, TimeUnit.SECONDS);
loginPage = PageFactory.initElements(driver, LoginPage.class);
}
@Given("^User is on the PIM login page$")
public void user_is_on_the_PIM_login_page() throws Throwable {
loginPage.loginIntoAccount();
// loginPage.test();
}
@And("^enters the correct username$")
public void enters_the_correct_username() throws Throwable {
System.out.println("User neters the correct password inside the password textefield");
// loginPage.test2();
}
@And("^enters the correct password$")
public void enters_the_correct_password() throws Throwable {
System.out.println("Entered the correct password");
}
@When("^clicks on the login button$")
public void clicks_on_the_login_button() throws Throwable {
System.out.println("Clicked on the login button");
}
@Then("^user should be taken to the successful login page$")
public void user_should_be_taken_to_the_successful_login_page() throws Throwable {
System.out.println("Succesffully taken to the login page.");
}
}
私は、下記の次のコードを試してみましたが、コードは動作しdosntブラウザを開くように見えるが、その後他のステップは、それかのように(いけない仕事)ドライバの別個のインスタンスを作成した:
public class MasterStep {
WebDriver driver;
LoginPage loginPage;
@Before
public void setUp() throws Exception {
System.setProperty("webdriver.chrome.driver",
"C:\\Users\\gianni.bruno\\Desktop\\BuyAGiftCucumberFramework\\PimCucumberFramework\\src\\test\\java\\resources\\other\\chromedriver.exe");
this.driver = new ChromeDriver();
this.driver.manage().window().maximize();
this.driver.manage().timeouts().pageLoadTimeout(60, TimeUnit.SECONDS);
loginPage = PageFactory.initElements(driver, LoginPage.class);
}
}
私はこれを依存性注入を使用して解決し、セットアップ機能を注入します。それは私が必要とするものを構成し、継承を使って機能を注入しないようにするでしょう。 –