gpt4 book ai didi

java - 如何模拟 @AfterParameter JUnit 注解?

转载 作者:行者123 更新时间:2023-12-02 02:22:37 25 4
gpt4 key购买 nike

我正在使用 JUnit 和 Selenium 进行一些浏览器测试,并且需要使用多个 WebDrivers 运行相同的测试。为此,我使用 JUnit 参数化,这样我就可以在运行时传入任意数量的 WebDrivers 并为每个驱动程序运行完整的测试类。

每个驱动程序在不再需要时都应该调用 .quit() 。理想情况下,当每组参数完成测试时,都会调用一个 @AfterParameter 方法注释。在没有这样的注释的情况下,避免要求测试编写者在测试中添加大量样板的最干净的方法是什么?

这是我目前拥有的:

@Parameters(name = "{0}")
public static Collection<Object[]> config() throws IOException {

return SeleniumCore.getConfig();
}

private static WebDriver driver;
private static Collection<WebDriver> oldDrivers = new ArrayList<>();


public TestingClass(String name, SeleniumTestParameters params) {

// Stores old open drivers to be closed down at the end of testing.
if (TestingClass.driver != null) {
oldDrivers.add(driver);
}

TestingClass.driver = params.getDriver();
}


@AfterClass
public static void afterClass() {

for (WebDriver oldDriver : oldDrivers) {
oldDriver.quit();
}
driver.quit();
}

它允许存储旧的驱动程序,直到整个类被拆除,并且它可以正常工作。但是,它还需要构造函数和 afterClass 方法中的额外样板以及附加信息。可以清理吗?

最佳答案

即将推出(尚未发布)的 JUnit 4.13 版本支持 @AfterParam@BeforeParam:https://github.com/junit-team/junit4/pull/1435

关于java - 如何模拟 @AfterParameter JUnit 注解?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48289698/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com