TestNgからJUnitに切り替わります。私は、次のTestNGのコードのように事前に定義された正規表現と期待例外メッセージを一致させる必要があります正常に動作しますが、私はJUnitの中に同じ動作を実現することはできませんJUnit - 予想される例外メッセージ正規表現
@Test(expectedExceptions = SomeClass.class, expectedExceptionsMessageRegExp = "**[123]regexExample*")
public void should_throw_exception_when_...() throws IOException {
generatesException();
}
。私はこの解決策を考え出した:
@Rule
public ExpectedException expectedEx = ExpectedException.none();
@Test
public void should_throw_exception_when_...() throws IOException {
expectedEx.expect(SomeClass.class);
expectedEx.expectMessage("**[123]regexExample*");
generatesException();
}
しかし、正規表現をサポートしていませんexpectedEx.expectMessage("**[123]regexExample*");
方法は、私は正確なハードコードメッセージとそれを提供する必要があります。私はMatcherを使ってそのメソッドを提供することでこれが実現できるのを見ましたが、正しく行う方法がわかりません。
これを行う良い方法はありますか?
別の回避策がありますが、テストでは、予想される例外をキャッチし、メッセージを正規表現で、正しいことを主張することができます。例外がスローされなかった場合、 'assert.fail()' – Magnilex