【发布时间】: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 的任何参数