gpt4 book ai didi

unit-testing - 如何仅在第一次调用模拟方法时抛出异常?

转载 作者:行者123 更新时间:2023-12-03 07:30:55 24 4
gpt4 key购买 nike

我有一个模拟对象的方法,可以多次调用(想想递归)。该方法定义如下:

public void doCommit() { }

为了让它失败,我使用了这个约定:

doThrow(new RuntimeException()).when(mMockedObject).doCommit();

但这使得该方法每次调用时都会抛出此异常。例如,我怎样才能使它只在第一次和第三次被调用时抛出它?这意味着,例如,第二次和第四次它只是返回而不抛出异常。请注意,我不是 doCommit() 的作者,也没有可以更改的源代码。

最佳答案

我想通了(有伊戈尔的一些提示)。这是对连续的 void 方法调用进行 stub 的方法:

doThrow(new RuntimeException()).doNothing().doThrow(...).doNothing().when(mMockedObject).doCommit();

谢谢伊戈尔!

关于unit-testing - 如何仅在第一次调用模拟方法时抛出异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3498072/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com