2
void somefunction() {
try {
aMock.doSomething();
bMock.another();
} finally {
cMock.cleanup();
}
}
测试:
@Test(expected = Exception.class)
void sometest() {
... setup various mocks ...
PowerMockito.doThrow(new Exception("abc")).when(aMock).doSomething();
outerMock.somefunction();
// ** THIS SHOULD FAIL
verify(bMock).another();
// ** THIS SHOULD FAIL TOO
verify(cMock, never()).cleanup()
}
当我运行这个它传递。为什么? throw Exception(和@Test中的处理)是否胜过验证声明?
如果是这样 - 是否有某种方式来测试最后子句是否被执行?
有没有办法hav如果有'catch()'而不是'finally'这个工作, – ethrbunny
如果你的生产代码中有一个catch,那么不会抛出异常,并且没有问题,你是什么意思? –
验证catch()块中代码的操作/结果。 – ethrbunny