一些参数不同而其他参数保持不变的 Junit 测试

Junit test where some parameters differ and other remains same

我有以下用于 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 文件中读取这些参数吗?这是一个好习惯吗?

您可以使用 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 是从文本文件中读取内容的方法。