Ich versuche, JunitParams zu verwenden, um meine Tests zu parametrisieren. Aber mein Hauptproblem ist, dass die Parameter Strings mit Sonderzeichen, Tilde oder Pipe sind.Verwendung von "Komma" oder "Rohr" innerhalb von 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 |
}
}
Mit Tilde habe ich kein Problem. Aber mit Rohr, habe ich eine Ausnahme:
java.lang.IllegalArgumentException: wrong number of arguments
Das Rohr, wie das Komma, als Separator für Parameter verwendet wird.
Gibt es eine Möglichkeit für mich, einen anderen Separator zu setzen? Oder ist dies eine Einschränkung von JunitParams?
Sie könnten Umgehen mit [diese Syntax] (https://github.com/Pragmatists/JUnitParams/blob/master/src/test/ java/junitparams/usage/Samples_of_Usage_Test.java # L34) –
Ich würde auch versuchen, die Pipe mit "\\" zu umgehen, siehe [dieses Beispiel] (https://github.com/Pragmatists/JUnitParams/blob/master/src/ test/java/junitparams/usage/Samples_of_Usage_Test.java # L114) –
Ich habe diese Syntax versucht, funktioniert immer noch nicht. Jetzt verwende ich parametrisierte statt JunitParams. es funktioniert, aber das Argument ist für alle JunitClass (also musste ich eine neue Klasse erstellen). Das "\\" funktioniert. Aber weil meine Parameter schwer zu lesen sind (voll von | und ~ und anderen Sonderzeichen), hätte ich es vorgezogen, in meinen Eingabesätzen nicht viel flüchtiges Zeichen hinzuzufügen. Aber ja, es funktioniert. – GaspardP