如何将JUnit 4参数化测试迁移到JUnit 5参数化测试?

时间:2019-10-08 13:56:12

标签: junit5

我有一个如下所示的JUnit 4测试,我正在尝试将JUnit升级到JUnit5。我对如何将JUnit 4测试迁移到JUnit 5进行了一些研究,但是找不到有关如何在以下情况下迁移的任何有用信息。

任何人都知道如何将该测试转换为JUnit 5吗?

@RunWith(Parameterized.class)
public class FibonacciTest {
  @Parameters
  public static Iterable<Object[]> data() {
      return Arrays.asList(new Object[][] { { 0, 0 }, { 1, 1 }, { 2, 1 }, { 3, 2 }, { 4, 3 }, { 5, 5 }, { 6, 8 } });
  }

  @Parameter(0)
  public int fInput;

  @Parameter(1)
  public int fExpected;

  @Test
  public void test() {
      assertEquals(fExpected, Fibonacci.compute(fInput));
  }
}

1 个答案:

答案 0 :(得分:0)

找到了解决方案:

public class FibonacciTest {
    public static Stream<Arguments> data() {
        return Stream.of(
            Arguments.arguments( 0, 0 ), 
            Arguments.arguments( 1, 1 ), 
            Arguments.arguments( 2, 1 ), 
            Arguments.arguments( 3, 2 ), 
            Arguments.arguments( 4, 3 ), 
            Arguments.arguments( 5, 5 ), 
            Arguments.arguments( 6, 8 )
         );
     }

     @ParameterizedTest
     @MethodSource("data")
     public void test(int fInput, int fExpected) {
         assertEquals(fExpected, Fibonacci.compute(fInput));
     }
}