在Java的mockito中捕获异常时如何覆盖自定义异常

在Java的mockito中捕获异常时如何覆盖自定义异常,java,unit-testing,mockito,code-coverage,powermockito,Java,Unit Testing,Mockito,Code Coverage,Powermockito,例如 我想为catch块编写mockito覆盖率语句。如何做到这一点?我是mockito框架的新手。因此,基本上按照Joni的说法,我们只能在实际发生异常时测试catch块,直到无法测试为止。您可以编写实际使代码抛出异常的测试用例。 控件将转到捕捉块,您的覆盖范围将增加 为了使测试用例通过,您可以编写期望得到异常的测试用例,如 try { // Some code } catch (IOException e) { throw new CustomDefineException

例如


我想为catch块编写mockito覆盖率语句。如何做到这一点?我是mockito框架的新手。

因此,基本上按照Joni的说法,我们只能在实际发生异常时测试catch块,直到无法测试为止。

您可以编写实际使代码抛出异常的测试用例。 控件将转到捕捉块,您的覆盖范围将增加

为了使测试用例通过,您可以编写期望得到异常的测试用例,如

try {
    // Some code
} 
catch (IOException e) {
    throw new CustomDefineException(e);
}

在测试方法的顶部。

要获得覆盖率,您必须设置一个导致抛出
IOException
的测试用例。您显示的代码不会抛出IOException,因此catch块中的代码不可能运行。Ohh。。所以,你的意思是,除非抛出异常或为异常编写显式测试用例,否则它不会被覆盖?是的,它就是这样工作的。如果捕获到异常,你会如何期望异常?你不是从catch中抛出自定义异常吗。有一个自定义的例外,我明白你的意思。你应该用
expected=customdefineeexception.class
编辑答案,这样就不会产生误导。明白你的意思了。非常感谢。我编辑过。如果这解决了你的问题。马克回答说:“顺便说一句,我不是海报:)
@Test(expected = CustomDefineException.class)
public void shouldThrowCustomDefineExceptionWhenWrongParameterIsSupplied() {
    // Your Logic to create Exception
    }