相关疑难解决方法(0)

是否可以嵌套 JUnit 5 参数化测试?

我正在尝试为接口 Foo 编写参数化测试,该接口声明一个方法 getFooEventInt(int, int)。我编写了一个适用于 Foo 的单个实例(FooImpl 对象)的参数化测试。

public class FooTest {

    @ParameterizedTest
    @MethodSource("getFooEvenIntProvider")
    public void getFooEvenIntTest(int seed, int expectedResult) {
        Foo foo = new FooImpl();

        Assertions.assertEquals(expectedResult, foo.getFooEvenInt(seed));
    }

    private static Stream getFooEvenIntProvider() {
        return Stream.of(
            Arguments.of(-2,  0),
            Arguments.of(-1,  0),
            Arguments.of( 0,  2),
            Arguments.of( 1,  2),
        );
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,我希望能够针对提供的 Foo 实现实例列表调用 getFooEvenIntTest(int, int) ,然后每次迭代都使用提供的种子/预期结果值列表。

我意识到我可以这样做...

public class FooTest {

    @ParameterizedTest
    @MethodSource("getFooProvider")
    public void getFooImplEvenIntTest(Foo foo) {
        int[] expectedResult = {  0,  0, 2, 2 };
        int[] seed           = { …
Run Code Online (Sandbox Code Playgroud)

java nested parameter-passing junit5

7
推荐指数
1
解决办法
7113
查看次数

标签 统计

java ×1

junit5 ×1

nested ×1

parameter-passing ×1