有没有一种方法可以对参数化数据按顺序执行多种测试方法

时间:2020-05-12 19:05:35

标签: bdd junit5

我正在使用JUnit5,并且想用一组数据上的有序方法构造我的测试类。 到目前为止,我已经研究了嵌套测试,但似乎无法获得所需的输出

反正有这样做吗?有人可以指出正确的方向,因为我已经解决了几个小时。

@ParameterizedTest
@MethodSource("getTestData")
@Order(1)
void shouldGetTestCaseNumber(Map<Object, Object> excelData) {
    System.out.println(excelData.get("Test Case "));

}

@ParameterizedTest
@MethodSource("getTestData")
@Order(2)
void shouldGetEntitlement(Map<Object, Object> excelData) {
    System.out.println(excelData.get("Entitlement"));
}


Collection<Arguments> getTestData() throws IOException {
    TestDataService testDataService = new TestDataService();
    List<Arguments> data = new ArrayList<>();
    for(Object[] d: testDataService.getData()){
        data.add(Arguments.of(d));
    }
    return data;
}

现在,输出将包含shouldGetTestCaseNumber()的所有测试用例,然后是shouldGetEntitlement(),但我想要一个测试用例作为

测试用例1

  • 应该GetTestCaseNumber()
  • shouldGetEntitlement()

测试用例2

  • 应该GetTestCaseNumber()
  • shouldGetEntitlement()

就像我说的那样,如果有人可以将我指向正确的方向,并且我可以从那里走出去,我就是生命

1 个答案:

答案 0 :(得分:1)

否,当前功能集无法实现。

https://github.com/junit-team/junit5/issues/871上还有一个未解决的问题……还有很多相关问题。

您可以求助于动态测试并构建自己的轻量级测试结构。但是您将失去参数化测试提供的所有功能。

https://junit.org/junit5/docs/current/user-guide/#writing-tests-dynamic-tests