繁体   English   中英

如何为同一JUnit测试提供不同的测试数据?

[英]How can I provide different test data to the same JUnit test?

我正在尝试创建动态JUnit测试(在Directory中搜索文件,找到匹配的Input / Expected File,使用正确的XQuery-Transformator并将测试数据源文件夹放置在正确的目录中。)

ArrayList<Tuple4> t = findfiles(new String[]{"**/*.xq**"}, "D:/PROJEKTE/UDG/OSB-Projekte/"); //Routine to put these information into my Array

for( Tuple4 sub : t){
    String inp = (String) sub.c;
    if(inp.contains("DiagFisArchiveId INP HDR")){
        System.out.println("A: "+ sub.a + " B: " + sub.b + " C: "+ sub.c+ " D: "+sub.d);
    new XQueryTester((String)sub.a,(String)sub.b).testHeader((String)sub.c,(String)sub.d); 
    } else if(inp.contains("PAY")){
        System.out.println("A: "+ sub.a + " B: " + sub.b + " C: "+ sub.c+ " D: "+sub.d);

        new XQueryTester((String)sub.a,(String)sub.b).testBody((String)sub.c,(String)sub.d); 

    }
}

运行此命令时,我在控制台中获得以下输出:

A: src\conf\IsiAivResponse_XqueryTransformer\IsiAivResponse.xquery B: D:\PROJEKTE\UDG\OSB-Projekte\konf_uss_aiv\test\xquery-testdata\ C: IsiAivResponse IsiAivResponse INP PAY.xml D: IsiAivResponse IsiAivResponse EXP PAY.xml
A: src\conf\EsmArsRequest_XqueryTransformer\ArsBuilder.xquery B: D:\PROJEKTE\UDG\OSB-Projekte\konf_uss_ars\test\xquery-testdata\ C: ArsBuilder EsmArsRequest INP PAY.xml D: ArsBuilder EsmArsRequest EXP PAY.xml
A: src\conf\IsiArsHeader_XqueryTransformer\headerSetter.xq B: D:\PROJEKTE\UDG\OSB-Projekte\konf_uss_ars\test\xquery-testdata\ C: headerSetter IsiArsHeader INP PAY.xml D: headerSetter IsiArsHeader EXP HDR.xml
A: src\conf\IsiArsResponse_XqueryTransformer\response.xq B: D:\PROJEKTE\UDG\OSB-Projekte\konf_uss_ars\test\xquery-testdata\ C: response IsiArsResponse INP PAY.xml D: response IsiArsResponse EXP PAY.xml
...

但是它说我只跑了1次测试

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 30.928 sec - in XQueryTest

我的初始化有问题吗,还是真的在运行“每次测试”并只说是1?

编辑 :我只有1 @Test Annotation ,但是如何验证它实际测试了所有内容。 因为在我的Test-Engine( XQueryTester )中,我实际上放置了一些未打印到控制台的日志,所以我觉得它并没有真正对其进行测试。

如果只有1个@Test,显然JUnit会说您只在运行1个测试。

但是,要达到目标,您可以做的是为需要验证的每个文件添加断言。 像这样:

@Test
public void verifyReadFiles(){
    //Your logic here to read process files
    //Yours assertions here   
    Assert.assertThat(isLoaded(file1), is(true));
}

希望对您有帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM