代码之家  ›  专栏  ›  技术社区  ›  Ragini

Junit测试,其中一些参数不同,另一些参数保持不变[关闭]

  •  0
  • Ragini  · 技术社区  · 7 年前

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

    基本上,我需要测试一个算法,该算法将输入文件和其他几个参数作为输入,并生成一些数据。该数据需要与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测试的设置方法中的属性文件?这是一种好的做法吗?

    1 回复  |  直到 7 年前
        1
  •  2
  •   Sasha Shpota A-Bag    7 年前

    您可以使用 JUnitParams lib。

    将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 是从文本文件中读取内容的方法。