【问题标题】:TestNG class with Factory and Dataprovider never works带有 Factory 和 Dataprovider 的 TestNG 类从不工作
【发布时间】:2018-12-22 09:25:21
【问题描述】:

我有一个 jar 计算器库。我做了一个简单的类来测试 Factory 和 DataProvider 的“sum”函数,就像在许多示例中一样。但是当我运行它时,我看到:没有执行任何测试。如果我删除 Factory 并将 DataProvider 写入 Test 注释 - 一切正常。

public class SumTest {

  Calculator calc = new Calculator();
  private final double a;
  private final double b;

  @Factory(dataProvider = "getValues")
  public SumTest(double aValue, double bValue) {
      this.a = aValue;
      this.b = bValue;
      this.calc = new Calculator();
  }

  @Test
  public void testSum() {
      Assert.assertEquals(a + b, calc.sum(a, b));
  }

  @DataProvider
  public Object[][] getValues() {
      return new Object[][]{
          {10, 5},
          {-10, 5},
          {11.55, -10.55},
          {-5, -6},
          {99999.8d, 1l},
          {9223372036854775807L, 9223372036854775807L}
      };
  }

}

【问题讨论】:

  • 你的 SumTest 构造函数的参数不应该接受 long, long 参数吗?还是我在那里遗漏了什么?为了精确,你能分享calc.sum(a, b)方法的签名吗?
  • 它有两个覆盖的 sum 方法,用于 double 和 long。问题不在于数据。我只尝试了 {10,5} ,但它仍然无法正常工作。但它确实适用于使用 @Test 注释中编写的 Dataprovider 的任何参数

标签: java testng


【解决方案1】:

DataProvider 需要是静态的才能使工厂工作。

【讨论】:

    猜你喜欢
    • 2023-03-14
    • 1970-01-01
    • 2022-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多