如何为void方法做ongoingstub



我正在尝试编写一个单元测试,在成功之前抛出特定次数的异常。这是可行的方法不返回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方法?

我可以用下面的代码解决这个问题:

    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();

希望对其他人也有帮助。

相关内容

  • 没有找到相关文章

最新更新