JRE 6に基づいてJavaアプリケーションを作成しています。JUnit4を使用して、パラメーター化されたテストを生成しています。このエラーが発生しました:
アノテーション@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}
});
}
私はなんとかこのようないくつかの遠い関連の質問を見つけることができました。悲しいことに、私の状況では、彼らは役に立たない。
私が試したがうまくいかなかったこと:
クラス宣言から「extendsBasicCalculatorTest」を削除する
@Testアノテーションを使用するテスト関数を追加する
org.junit.runners.Parameterizedをインポートし、@Parameterized.Parametersの代わりに@Parametersを使用する
別のプロジェクトで非常によく似た実装(特にアノテーションとtestGenerator())を問題なく使用したことを言及する必要があります。実装は、 this、this、thisなどのオンラインで利用可能なチュートリアルに従います。
このエラーを解決するための助けをいただければ幸いです。