内の「カンマ」や「パイプ」を使用。しかし、私の主な問題は、パラメータが特殊文字、チルダまたはパイプの文字列であることです。私は私のテストをパラメータ化するために、JunitParamsを使用しようとしている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 |
}
}
チルダでは問題ありません。 しかしパイプと、私は例外があります
java.lang.IllegalArgumentException: wrong number of arguments
パイプ、コンマとして、パラメータのセパレータとして使用されます。
私は別のセパレータを設定する方法はありますか? これはJunitParamsの制限ですか?
あなたは[この構文](https://github.com/Pragmatists/JUnitParams/blob/master/src/test/を使用して周りに仕事ができますjava/junitparams/usage/Samples_of_Usage_Test.java#L34) –
また、パイプを "\\"でエスケープしようとします。[このサンプル](https://github.com/Pragmatists/JUnitParams/blob/master/src/)を参照してください。テスト/ java/junitparams/usage/Samples_of_Usage_Test.java#L114) –
私はこの構文を試しても、まだ動作しません。 私はJunitParamsの代わりにParameterizedを使用しています。 それが働いているが、引数がすべてJunitClass(私は新しいクラスを作成する必要がありました)のためのものです。 "\\"は機能します。 しかし、私のパラメータは読みにくいので(|や〜やその他の特殊文字でいっぱいです)、私は入力セットに多くのエスケープ文字を追加しない方がよいでしょう。 はい、うまくいきます。 – GaspardP