我试图编写一个单元测试,在成功之前抛出异常一定次数。它可以用于方法,不返回void:
OngoingStubbing<Result> requestCallStub = when(request.call());
for(int i = 0; i < numFailures; i++){
requestCallStub = requestCallStub.thenThrow(
new Exception("Failing for test reasons, round " + i));
}
但是,只有当call()方法是非void方法时,这才是可行的。我想知道是否有一种方法可以使用相同的模式进行void方法?
答案 0 :(得分:0)
我能够使用以下代码解决这个问题:
Stubber deleteStubber = null;
if (numOfFailures > 0) {
deleteStubber = PowerMockito.doThrow(new NullPointerException("Testing"));
for (int i = 1; i < numOfFailures; i++) {
deleteStubber = deleteStubber.doThrow(new NullPointerException("Testing"));
}
}
deleteStubber.doNothing().when(request).call();
希望它也有助于其他人。