如何忽略Mockito中void方法中的几个void方法调用

时间:2012-10-31 18:19:22

标签: junit mockito

我正在测试一个在方法中调用其他几个void方法的void方法(所有这些方法都在同一个类中)。这种方法就是这样......

public void methodToTest() {
   methodA();
   methodB();
}

void methodA() {
   methodA1();
   methodA2();
   methodA3();
}

我想做的是让methodA()以上无所作为。也就是说,我希望methodA()基本上是这样的:

void methodA() { }

我在doThrow()上尝试doAnswer()methodA()都无济于事。就好像这些都被完全忽略了一样。

我尝试过的一个例子......

doThrow(new RuntimeException()).when(mockedClass).methodA();

有没有办法只使用Mockito?我无权改变正在修改的课程。

2 个答案:

答案 0 :(得分:20)

如果你想让methodB仍然执行,而methodA什么都不做。这样就可以了:

TestClass spy = spy(new TestClass());
doNothing().when(spy).methodA();
spy.methodToTest(); 

答案 1 :(得分:0)

 @Mock
 ApplicationClass applicationClass; 


 Mockito.doNothing().when(applicationClass).myMethod(Matchers.any(Object.class));