背景 我是CDI的新手,但已经使用黄瓜,硒和Java组合作为端到端测试一段时间了。最近,我正在为我的e2e测试项目实施CDI,但我发现没有像#34; DI框架Guice"那样的ScenarioScoped。在CDI。因为我想为每个黄瓜场景注入一个新的硒webdriver。我在网上搜索了很多,发现很多教程介绍了不同的范围,但没有一个讨论ScenarioScoped,也没有如何在CDI中定制这样的范围。
目标: 我想创建一个这样的CDI bean,以便在每个黄瓜场景中初始化一个新的selenium webdriver。
我目前的代码: 一个webdriver生成器方法,(因为没有ScenarioScoped,我使用的是ApplicationScoped,但是我不需要工作。)
@Produces
@TheWebDriver
@ApplicationScoped
public WebDriver get() {
return iWebDriver;
}
在页面驱动程序类中:
@Inject
public LandingPageDriver(@TheWebDriver WebDriver aDriver) {
iCalculator = find( aDriver, By....);
iWelcome = find( aDriver, By....);
}
在我的步骤定义课程中:
@Inject
private LandingPageDriver iMainToDoListPageDriver;
问题: 这可能是每黄瓜场景创建CDI吗?如果是这样,请转到我的代码示例或甚至是教程? 如果不可能,请告诉我原因,并为我提供另一种选择。 或者,如果我正在做一些没有意义的事情,请纠正我。
感谢所有帮助!如果您需要更多信息,请与我们联系。