Próbuję użyć JunitParams w celu sparametryzowania moich testów. Ale moim głównym problemem jest to, że parametry są ciągami znaków specjalnych, tyldy lub rury.Używanie "przecinków" lub "potoków" w obrębie JunitParams
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
import org.junit.runner.RunWith;
import junitparams.JUnitParamsRunner;
import junitparams.Parameters;
@RunWith(JUnitParamsRunner.class)
public class TheClassTest {
@Rule
public ExpectedException exception = ExpectedException.none();
@Test
@Parameters({"AA~BBB"})
public void shouldTestThemethod(String value) throws Exception {
exception.expect(TheException.class);
TheClass.theMethod(value);
// Throw an exception if value like "A|B" or "A~B",
// ie if value contain a ~ or a |
}
}
Z tyldą nie mam problemu. ale z rurą mam wyjątek:
java.lang.IllegalArgumentException: wrong number of arguments
Rura jako przecinkiem jest używany jako separator parametrów.
Czy jest jakiś sposób, aby ustawić inny separator? A może to ograniczenie JunitParams?
można pracować wokół używając [składni] (https://github.com/Pragmatists/JUnitParams/blob/master/src/test/ java/junitparams/usage/Samples_of_Usage_Test.java # L34) –
Chciałbym również spróbować uciec z rury z "\\", zobacz [ten przykład] (https://github.com/Pragmatists/JUnitParams/blob/master/src/ test/java/junitparams/usage/Samples_of_Usage_Test.java # L114) –
Próbowałem tej składni, nadal nie działa. teraz używam Sparametryzowane zamiast JunitParams. to działa, ale argument jest dla wszystkich JunitClass (więc musiałem stworzyć nową klasę). "\\" działa. Ale ponieważ moje parametry są trudne do odczytania (pełne znaków | i ~ oraz innych znaków specjalnych), wolałbym nie dodawać wielu znaków ucieczki w moich zestawach wejściowych. Ale tak, działa. – GaspardP