0

我有一个 junit 测试的以下输入参数。

基本上我需要测试一个算法,该算法将 inputFile 和一些其他参数作为输入并产生一些数据。此数据需要与referenceData 进行比较(referenceData 文件也是测试的输入参数之一)。如果算法产生的数据与参考数据相同,则测试通过,否则失败。

inputFile // .xml File - is different for each test. there are total five.
param 1   //remains same
param 2   //remains same
param 3   //remains same
param 4   //remains same
param 5   //remains same
ReferenceData // .csv File - is different for each test. there are total five

我的困惑是:

1)参数化的 jUnit 是否适合这种情况?如果是的话,请提供一些指导我应该如何实施它?#

2)如果 jUnit 不适合这种情况,那么我还能使用什么?

3) 我应该在 junit 测试的 setUp 方法中从 .properties 文件中读取这些参数吗?这是一个好习惯吗?

4

1 回答 1

2

您可以使用JUnitParams库来实现这一点。

将您的 xml 和 csv 文件放入/src/test/resources项目的文件夹中(适用于 maven/gradle 项目)。

并像这样在测试中使用它们:

@RunWith(JUnitParamsRunner.class)
public class ServiceTest {

    @Test
    @Parameters({
            "first.xml, first.csv",
            "second.xml, second.csv",
            "third.xml, third.csv"
    })
    public void shouldServe(String xmlFilePath, String csvFilePath) {
        String xmlFileContent = readContent(xmlFilePath);
        String csvFileContent = readContent(csvFilePath);

        // call your business method here passing 
        // dynamic xml, csv and static params
    }
}

readContent从文本文件中读取内容的方法在哪里。

于 2017-11-22T14:29:40.553 回答