如果我有一个可以抛出异常的函数a(),并且我想模拟它。如果我写
Mockito.when(a()).callRealMethod()
编译器告诉我添加try-catch块或添加throw声明。但是我不想在那一行调用方法a(),我只是想确保当我在测试中稍后的某个地方调用这个方法时,它会调用真正的方法,然后我将添加try-catch。怎么做呢?
通常的做法是向所有测试方法添加throws Exception
注释,因为如果抛出任何意外异常,框架将自动使测试失败。这允许您调用/模拟任何抛出异常的方法,而无需显式编写错误处理代码。
@RunWith(JUnit4.class)
public class YourTest {
@Before public void setUp() throws Exception {
// ...
}
@Test public void fooShouldDoBar() throws Exception {
// ...
}
}