これは、リモート例外をスローするように強制したい私のコードです。
transient Bicycle b=null;
public Bicycle getBicycle() {
if(b==null) {
try {
b=new Bicycle(this);
} catch (RemoteException ex) {
Logger.getLogger(Bicycle()).log(Level.SEVERE, null, ex);
}
}
return b;
}
これが私がMockitoで実行しているJUnitテストです:
boolean exceptionThrown=false;
Bicycle mockB = mock(Bicycle);
mockB.setBicycle(null);
stub(mockB.getBicycle()).toThrow(new RemoteException(){boolean exceptionThrown = true;});
assertTrue(exceptionThrown);
次のエラーが発生し続けます。
Checked exception is invalid for this method!
どんな助けでもありがたいです。
編集:
それ以外の
stub(mockB.getBicycle()).toThrow(new RemoteException(){boolean exceptionThrown = true;});
私も試しました
doThrow(new RemoteException(){boolean exceptionThrown = true;}).when(mockB).getBicycle();
と
Mockito.when(mockB.getBicycle()).thenThrow(new RemoteException(){boolean exceptionThrown=true;});
まだ運がない。
Edit2-APIを完全に理解し、正しく使用した後、さらに一歩進んだ:
when(mockB.getBicycle()).thenThrow(new RuntimeException());
今、アサートする方法がわかりません。例外が呼び出されたらブール値を設定しようとしましたが、assertはブール値を認識できません。
何か案は?