我正在创建一个基于 JRE 6 的 Java 应用程序。我使用 JUnit 4 来生成参数化测试。我收到此错误:
注解@Parameterized.Parameters 必须定义属性值
在包含注释的行上:
@Parameterized.Parameters
以下是我认为与此问题相关的代码:
import static org.junit.Assert.assertEquals;
import java.util.Arrays;
import java.util.Collection;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import calc.CalculatorException;
import calc.ScientificCalculator;
@RunWith(Parameterized.class)
public class ScientificCalculatorTest extends BasicCalculatorTest{
/** Provides an interface to the scientific features of the calculator under test */
private ScientificCalculator sciCalc;
private double a, b;
@Before
@Override
public void setUp() throws Exception {
sciCalc = new ScientificCalculator();
//Make sure that the basic functionality of the extended calculator
//hasn't been broken.
theCalc = sciCalc;
}
/**
* Constructor. Is executed on each test and sets the test values to each pair in the data sets.
* @param nr1 the first number in the tested pair.
* @param nr2 the second number in the tested pair.
*/
public ScientificCalculatorTest(double nr1, double nr2){
a = nr1;
b = nr2;
}
@Parameterized.Parameters
public static Collection<Object[]> testGenerator() {
return Arrays.asList(new Object[][] {
//General integer values | -/+ combinations
{ -100, -100},
{ -100, 100},
{ 100, -100},
{ 100, 100}
});
}
我设法找到了一些相关的问题,例如this。可悲的是,在我的情况下,他们没有帮助。
我尝试过但没有奏效的方法:
从类声明中删除“扩展 BasicCalculatorTest”
添加使用 @Test 注解的测试函数
导入 org.junit.runners.Parameterized 并使用 @Parameters 而不是 @Parameterized.Parameters
我需要提一下,我在另一个项目中使用了非常相似的实现(最值得注意的是注释和 testGenerator()),没有任何问题。该实现遵循在线可用的教程,例如this、this和this。
非常感谢任何有关解决此错误的帮助。