是否有一种方法可以对参数化数据依次执行多种测试方法

问题描述 投票:0回答:1

我正在使用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

  • shouldGetTestCaseNumber()
  • shouldGetEntitlement()

测试用例2

  • shouldGetTestCaseNumber()
  • shouldGetEntitlement()

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

bdd junit5
1个回答
0
投票

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.