Cucumber/JUnit 5를 사용한 극작가 - PicoContainer를 사용한 종속성 주입
2330 단어 javaplaywrightcucumbertesting
의존성 주입
이 프로젝트는 종속성 주입을 사용하여 TestContext의 인스턴스를 단계 정의 클래스에 넣습니다. 더 큰 테스트 프로젝트에서는 여러 단계 정의가 있고 Playwright 인스턴스 및 BrowserContext와 같은 공통 인스턴스를 만드는 쉬운 방법이 필요합니다. 또한 경고 텍스트를 가져오고 설정할 때와 같은 동일한 시나리오에서 단계 간에 데이터를 공유할 수 있습니다.
이것은 이전 시리즈에서 pico-container에 대한 maven 종속성을 포함하고 이 클래스를 필요로 하는 단계 클래스의 생성자를 통해 이 클래스를 주입하여 구현됩니다.
DemoSteps.java의 생성자 코드:
public DemoSteps(TestContext testContext) {
this.testContext = testContext;
this.browser = testContext.getBrowser();
}
동일한 시나리오에서 단계 사이에 경고 텍스트를 저장하기 위해 종속성 주입을 사용하는 코드:
@When("User clicks submit")
public void userClicksSubmit() {
DemoPage demoPage = new DemoPage(page);
String alertText = demoPage.clickSubmit();
testContext.setAlertText(alertText);
}
@Then("Verify alert {string}")
public void verifyAlertToFillInResultIsShown(String alertText) {
Assertions.assertEquals(alertText, testContext.getAlertText());
}
전체 TestContext.java 클래스
package io.tpan.steps;
import com.microsoft.playwright.*;
import io.cucumber.java.AfterAll;
import io.cucumber.java.BeforeAll;
public class TestContext {
protected static Playwright playwright;
protected static Browser browser;
protected BrowserContext browserContext;
protected Page page;
@BeforeAll
public static void beforeAll(){
playwright = Playwright.create();
browser = playwright.chromium().launch(new BrowserType.LaunchOptions() // or firefox, webkit
.setHeadless(false)
.setSlowMo(100));
}
@AfterAll
public static void afterAll(){
browser.close();
playwright.close();
}
public Browser getBrowser() {
return browser;
}
String alertText;
public String getAlertText() {
return alertText;
}
public void setAlertText(String alertText) {
this.alertText = alertText;
}
}
항상 그렇듯이 코드는 Github에서 사용할 수 있습니다.
Reference
이 문제에 관하여(Cucumber/JUnit 5를 사용한 극작가 - PicoContainer를 사용한 종속성 주입), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/terencepan/playwright-with-cucumberjunit-5-dependency-injection-154l텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)