在为方法someMethod1编写单元测试用例时,我有一个用例,我试图确保在调用方法(someMethod2)时抛出抽象异常(AnalysisException)。被测试的类是JdbcTemplateSampleImpl。
public class JdbcTemplateSampleImpl {
public void someMethod1() {
someMethod2();
}
private void someMethod2() throws AnalysisException {
// some code here
}
}
我正在使用PowerMockito这样做
@Test(expected = com.test.AnalysisException.class)
public void abstractClassExceptionCheck2Test1() throws Throwable {
JdbcTemplateSampleImpl jdbcTemplateSampleImpl1 =
PowerMockito.spy(jdbcTemplateSampleImpl0);
PowerMockito.doThrow(mock(AnalysisException.class)).
when(jdbcTemplateSampleImpl1,"classCheck2");
jdbcTemplateSampleImpl1.abstractClassExceptionCheck2();
}
但是在执行测试用例时,我遇到了这样的错误
java.lang.Exception:意外的异常,预期“com.test.AnalysisException”但是“java.lang.NullPointerException”
在doThrow
方法调用之外模拟异常。
AnalysisException e = mock(AnalysisException.class);
PowerMockito.doThrow(e).
when(jdbcTemplateSampleImpl1,"classCheck2");