代码之家  ›  专栏  ›  技术社区  ›  Jonathan Holloway

参数化测试解决方案

  •  1
  • Jonathan Holloway  · 技术社区  · 16 年前

    http://junit.org/apidocs/org/junit/runners/Parameterized.html

    但我想知道是否有任何替代(可能更好)的方法来处理外部定义的测试数据。我真的不想在源文件中硬编码我的测试数据——我更喜欢用XML或其他某种结构化方式定义它。

    是否有一个特定的框架或框架的扩展为我提供了比标准JUnit方法更好的解决方案。你发现的最好的方法是什么?

    编辑:我熟悉FIT框架及其在这种情况下的使用,如果可能的话,我想避免使用它。如果有JUnit扩展或类似的框架提供了比TestNG更好的解决方案,请告诉我。

    3 回复  |  直到 16 年前
        1
  •  1
  •   Jonathan Holloway    16 年前

    因此,我找到了TestNG的方法,它允许您为测试指定参数,更多信息请点击此处:

    http://testng.org/doc/documentation-main.html#parameters-testng-xml

    一个例子是:

    @Parameters({ "first-name" })
    @Test
    public void testSingleString(String firstName) { 
      System.out.println("Invoked testString " + firstName);
      assert "Cedric".equals(firstName);
    }
    

    <suite name="My suite">
      <parameter name="first-name"  value="Cedric"/>
      <test name="Simple example">
    

    您还可以使用数据源(如Apache Derby)来指定此测试数据,但我想知道这是一个多么灵活的解决方案。

        3
  •  0
  •   Kathy Van Stone    16 年前

    在参数化测试示例中,我没有看到任何要求您将数据存储在类本身中的内容。使用一个从xml文件中提取数据并返回Object[][]的方法,并在示例中使用静态代码的地方调用该方法。当然,如果你想切换TestNG,他们已经为你编写了一个XML解析器。看起来 JUnitExt