Tworzę aplikację Java opartą na JRE 6. Używam JUnit 4 do generowania sparametryzowanych testów. Otrzymuję ten błąd:Java JUnit Sparametryzowany błąd
The annotation @Parameterized.Parameters must define the attribute value
na linii zawierającej adnotację:
@Parameterized.Parameters
Poniżej znajduje się kod uważam za istotne dla tej kwestii:
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}
});
}
udało mi się znajdź kilka powiązanych ze sobą pytań, takich jak this. Niestety, w mojej sytuacji nie pomagają.
Co próbowałem i nie działa:
usuwając "rozciąga BasicCalculatorTest" z deklaracji klasy
Dodawanie funkcji testowych, które używają @Test adnotacji
importowanie org.junit.runners.Parametryzowane i użycie @Parameters zamiast @ Parameterized.Parameters
Muszę wspomnieć, że użyłem bardzo podobnej implementacji (w szczególności adnotacji i testGenerator()) w innym projekcie bez żadnych problemów. Implementacja przebiega zgodnie z samouczkami dostępnymi online, takimi jak this, this i this.
Każda pomoc w rozwiązaniu tego błędu jest bardzo doceniana.
'@ Parameterized.Parameters (wartość =/* wymagana tutaj * /)' błąd mówi, że atrybut 'value' jest obowiązkowy. –
@PaulBellora, to był tylko literówka, dzięki za wskazanie, poprawiłem to, ale problem nadal istnieje. –
@ BheshGurung, wiem, że to mówi, ale użyłem go w innym projekcie bez (value =/* wymagane tutaj * /) i działało dobrze. Żaden z tutoriali, które dołączyłem, nie używa tego. –