如何将 TestNG @Factory/constructor 迁移到 JUnit 5?

问题描述

我正在将一些单元测试更新到 JUnit Jupiter (JUnit 5),即使我已经阅读了文档,我也尝试处理这个(简单的)测试: 假设它是一个向构造函数添加 Factory 的单元测试 (TestNG):

@DataProvider
public static Object[][] secure() {
    // @Checkstyle:off
    return new Object[][] {
            { true },{ false }
    };
    // @Checkstyle:on
}

@Factory(dataProvider = "secure")
public GrizzlyWebSocketProxyFilterTest(boolean secure) {
    this.secure = secure;
}

并且此构造函数用于 @BeforeEach 方法,该方法使用上述安全参数构建一个非常复杂的对象。 此对象由下面的一组单元测试使用。所以我的测试启动了两次:第一次将对象配置为安全,第二次将对象配置为非安全。

我看到在 JUnit Jupiter (JUnit 5) 中,无法将 MethodSource/ValueSource 添加@BeforeEach。 我的问题是:是否有一种简单的方法可以使用 JUnit Jupiter (JUnit 5) 重现相同的行为?也许用 ParameterResolver

感谢任何帮助,谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)