我有一个可以多次调用的模拟对象的方法(想想递归)。该方法定义如下:
public void doCommit() { }
为了让它失败,我使用这个约定:
doThrow(new RuntimeException()).when(mMockedObject).doCommit();
但这使得该方法每次调用时都会抛出此异常。例如,我怎样才能使它只在第一次和第三次被调用时抛出它?这意味着,例如,第二次和第四次它只是返回而不抛出异常。请注意,我不是 doCommit() 的作者,也没有可以更改的源代码。
我想通了(有伊戈尔的一些提示)。这是对连续的 void 方法调用进行存根的方法:
doThrow(new RuntimeException()).doNothing().doThrow(...).doNothing().when(mMockedObject).doCommit();
谢谢伊戈尔!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)