我对 Cucumber-jvm/Selenium 还是很陌生,所以如果这个问题听起来很愚蠢,我很抱歉。
背景:我是一家大公司的实习生。我正在为产品进行自动化软件测试。已经有一个现有的自动化测试步骤。我们要做的是扩展项目并添加我们自己的步骤。问题是几乎所有步骤都有相同的钩子方法。我之前问过一个关于如何避免运行钩子方法的问题,一个非常好的人说在钩子方法上使用标签。那是在我发现之前项目中几乎所有的钩子方法都差不多之前。这让我觉得它不是很快/优化,因为如果钩子方法是全局的,那么每次我运行一个特性文件时,它都会执行所有相同的钩子方法。经过几天的编码和研究,我发现使用 picocontainer 进行依赖注入,我认为这是解决当前问题的好方法,但我读了一些文章说依赖注入被认为是一种不好的做法。
我的问题:考虑我上面所说的,在 cucumber-jvm 中使用 picocontainer 的依赖注入是否考虑不好的做法?如果是,是否有更好的解决方案?
(可选背景)我认为这并不重要,但我只是将其包括在内,每个步骤中几乎 95% 的钩子方法:
@Before
public void keepScenario(Scenario scenario){
this.scenario = scenario;
fWait = new FluentWait<WebDriver>(BrowserDriver.getCurrentDriver());
fWait.withTimeout(Duration.ofSeconds(10));
fWait.ignoring(WebDriverException.class);
}
@After
public void screenshotOnFailure(){
if (scenario.getStatus().equals("failed")) {
BrowserDriver.getScreenshot(scenario);
}
}