前提・実現したいこと
例外テストの記述方法について教えてください。
様々なインプットに対して、対応した例外を投げるテストを作成したいと考えています。
インプットと期待例外のパターンの組み合わせ次第で、書き方としてはいくつか方法があると思いますが、
試みて失敗したものを記載しますので、解決案を教えて頂ければ助かります。
テストメソッドにはinvokeを使用しており、できるだけ@ParameterizedTestで、記述したいと考えています。
よろしくお願いします。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
1. 異なるインプットに対して、全て同じ例外を返す場合 > テストメソッド:@ParameterizedTest宣言し、dataProvider部に'テストデータ'を記述する (メソッド引数:テストデータを渡す) →[問題] @Test(expected = xxException.class)のように、@ParameterizedTest宣言できない。 @ParameterizedTest(xxx) testMethod(testData){ 〜 xxx.invoke(); } 2. 異なるインプットに対して、対応した例外を返す場合(例外パターンは複数) > テストメソッド:@Rule、@ParameterizedTest宣言し、dataProvider部に'テストデータ'と期待exceptionを記述する (メソッド引数:'テストデータ'と'期待exception.class'を渡す) →[問題] Ruleが機能していない。expected exception @Rule public ExpectedException thrown = ExpectedException.none(); @ParameterizedTest(xxx) testMethod(testData, zzz.class){ thrown.expect(zzz.class); 〜 xxx.invoke(); }
試したこと
try-catchの記述方法は、動作確認できております。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。