8
我想知道为什么我需要处理异常,当我嘲笑抛出异常的无效方法时。Mockito,void检查异常的方法
例如
public class MyObject {
public void call() throws SomeException {
//do something
}
}
现在,当我这样做,
@Mock
MyObject myObject;
doNothing().when(myObject).call()
它会导致编译错误说
"error: unreported exception SomeException; must be caught or declared to be thrown"
我很纳闷,为什么我需要处理异常对于本身被嘲笑的方法。
你不需要处理它。只需在您的测试方法中添加'throws Exception'即可。我将所有的JUnit方法标记为抛出异常,这是习惯的问题 - 没有理由不这样做。 –
@DawoodibnKareem当我想表示测试应该引发异常时,我使用断言助手,例如'@Test(expected = ...)'。我尽量避免测试方法签名中的'throws'子句,因为它没有任何关于测试本身的有用信息。 –