@RuleアノテーションをつけたExpectedExceptionを変数に定義する形が一般的だと思いますよ。
例えば実装クラス側で以下のような同じ例外で2通りのエラーがある場合、
lang
1if (No == 1) {
2 throw new IllegalArgumentException("Noの値は1以外で入力してください");
3}
4if (No == 2) {
5 throw new IllegalArgumentException("Noの値は2以外で入力してください");
6}
↓テストクラス側でこんな風に書くと、例外にセットされたメッセージ内容でエラーが判別できます。
lang
1public class HogeTest {
2 @Rule
3 public ExpectedException thrown = ExpectedException.none();
4
5 @Test
6 public void testNoData1Exception() throws Exception {
7 thrown.expect(IllegalArgumentException.class);
8 thrown.expectMessage("Noの値は1以外で入力してください");
9 //テスト対象メソッド呼び出し
10 }
lang
1@Test
2public void testNoData2Exception() throws Exception {
3 thrown.expect(IllegalArgumentException.class);
4 thrown.expectMessage("Noの値は2以外で入力してください");
5 //テスト対象メソッド呼び出し
6}
7}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。