我有一个方法
服务类
Public void foo() throws SchedulerException{
..........
}
测试类
Public void testExample(){
Mockito.doThrow(SchedulerException.class).when(f.foo());
}
编译器要求我为 testExample() 放置一个 try/catch 或 throws 有没有其他方法可以达到同样的目的?
最佳答案
你的问题没有具体说明 SchedulerException extends RuntimeException
,但根据你的问题我认为它没有。
如果 SchedulerException
没有 extends RuntimeException
,您的测试方法 (testExample()
) 必须throws SchedulerException
。这是由于 Java 的本质是强制执行捕获或抛出原则。详情可见JLS §11 .
正如@Ishnark 所建议的,如果您希望您的测试抛出任何类型的Exception
,you should annotate the test with @Test(expected=ExcpectedExceptin.class)
(即使您的异常 extends RuntimeExcpetion
)。
关于java - 模拟抛出异常的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43723281/