我正在测试一个void方法,它碰巧调用了一个类中的其他几个void方法(所有这些方法都在同一个类中)。方法是沿着这些线.
public void methodToTest() {
methodA();
methodB();
}
void methodA() {
methodA1();
methodA2();
methodA3();
}
我想做的是让上面的methodA()
什么都不做。也就是说,我希望methodA()
基本上是这样的:
void methodA() { }
我在methodA()
上试过doThrow()
和doAnswer()
,但都没有用。就好像这两者都被完全忽略了。
我试过的一个例子...
doThrow(new RuntimeException()).when(mockedClass).methodA();
有没有一种方法可以只使用Mockito?我无权更改正在修改的类。
3条答案
按热度按时间x4shl7ld1#
如果你想让methodB仍然执行,而methodA什么也不做。这将做到这一点:
jhiyze9q2#
flvlnr443#
只有当你有一个返回类型时,使用间谍才能帮助你。您可以使用类的模拟和doCallRealMethod来获得所需的效果。