ロジックと例外ブロックを持つメソッドがあり、例外ブロックの内容をテストしたいと思います。mockito - forceメソッドの部分的なモックを例外にして続行します。
方法:
Class Validator() {
protected Validator(blah,blah) {
}
protected boolean doStuff(String a, String b) {
try {
isValidInput(a){
} catch (Exception e) {
b = "unknown error"
}
}
テスト・ケース:
@Test
public void testException() {
Validator testValidator = new testValidator(blah, blah);
Validator spy = spy(testValidator);
String var2 = "unknown error"
doReturn(new Exception()).when(spy.doStuff(var1, var2));
assertEquals("unknown error", var2);
}
どのように私は例外ブロックに移動して、スタブ継続する本当の方法を強制することができますか?
あなたのテストの 'var2'はあなたがテストしているメソッドで設定した値を反映しないので、とにかく動作しません。 –
var2を "不明なエラー"にしようとするとどうなりますか? – user1040730
例外がある場合に返されるはずのメソッドは何ですか?これは、メソッドで公開されている唯一のものであるため、テストする必要があるのはこれだけです。例外を生成する入力を渡すか、例外をスローするために 'isValidInput'をスタブします。サブクラス化することもできます。 –