这是我想强制抛出远程异常的代码:
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());
我现在不知道如何断言。一旦调用异常,我尝试放置一个布尔值,但断言看不到布尔值。
有任何想法吗?