Mockito/PowerMocktio没有任何无效方法

Mat*_*Mat 15 java junit unit-testing mockito powermock

我需要一个方法,在测试期间调用时返回一些什么都不做,拥有该方法的类实例作为间谍实现.

我知道doNothing()方法只适用于void方法.有没有办法通过返回某些东西的方法获得相同的行为?

谢谢!

Joh*_*n B 14

使用when(spy.myMethod()).thenReturn(null).这将阻止间谍调​​用包装的实例.你必须告诉Mockito返回什么方法返回一些东西.a的默认行为mock是返回null.a的默认行为spy是调用包装对象.当您stub在其中的方法spy阻止对包装对象的调用并执行指定的行为时.

根据Spy的文件,您也可以这样做doReturn(null).when(spy).myMethod();

  • 注意`when(spy.myMethod()).thenReturn(null)`对于间谍不起作用(在一般情况下,可能在特定情况下),因为此时将执行方法的实际实现.一般规则是间谍必须始终使用`doXyz().when(spy).method()`语法来保留,以防止意外执行实际代码. (11认同)