模拟抛出异常的方法

时间:2017-05-01 17:15:21

标签: java junit mockito

我有一个方法

Service.class

Public void foo() throws SchedulerException{

           ..........

}

的Test.class

Public void testExample(){
     Mockito.doThrow(SchedulerException.class).when(f.foo());
 }

编译器要求我为tryExample()设置try / catch或throws 有没有其他方法可以实现相同的目标?

1 个答案:

答案 0 :(得分:1)

您的问题没有说明是SchedulerException extends RuntimeException,而是根据您的问题我认为不是。{/ p>

如果testExample()没有throws SchedulerException,您的测试方法(SchedulerException)必须extends RuntimeException。这是由于Java强制执行catch-or-throws原则。详细信息可在JLS §11中找到。

正如@Ishnark建议的那样,如果您希望测试能够抛出任何类型的Exceptionyou should annotate the test with @Test(expected=ExcpectedExceptin.class)(即使您的例外extends RuntimeExcpetion)。