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

Zac*_*ber 16 junit mockito

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

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

void methodA() {
   methodA1();
   methodA2();
   methodA3();
}
Run Code Online (Sandbox Code Playgroud)

我想做的是让methodA()上面什么都不做.也就是说,我想methodA()基本上是这样的:

void methodA() { }
Run Code Online (Sandbox Code Playgroud)

我都试过doThrow(),并doAnswer()methodA()无济于事.好像那些都被完全忽略了.

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

doThrow(new RuntimeException()).when(mockedClass).methodA();
Run Code Online (Sandbox Code Playgroud)

有没有办法只使用Mockito?我不能自由改变被修改的课程.

Chr*_*s D 22

如果您希望方法B仍然执行,而methodA什么也不做.这样做会:

TestClass spy = spy(new TestClass());
doNothing().when(spy).methodA();
spy.methodToTest(); 
Run Code Online (Sandbox Code Playgroud)