Mockito验证了间谍对象方法的返回

Dav*_*vid 13 java mockito

我知道你可以验证一个间谍对象的方法被调用的时间.你能验证方法调用的结果吗?

像下面这样的东西?

verify(spiedObject, didReturn(true)).doSomething();
Run Code Online (Sandbox Code Playgroud)

Joh*_*n B 12

要验证调用它的次数,请使用verify(spiedObject, times(x)).doSomething().

您不应该验证从间谍对象返回的值.它不是被测试的对象,所以为什么要验证它返回的内容.而是验证被测对象的行为以响应从间谍返回的值.

此外,如果您不知道间谍对象将返回什么值,那么最好使用模拟而不是间谍.

  • 我认为,如果使用 Mockito 您可以验证传递给方法的值,那么您也应该能够验证结果。 (3认同)
  • 有时您需要验证返回值-例如,验证计算结果。或者说,例如,您正在监视某个传感器类,并且想要在接收到导致“警报”的输入类型时验证该传感器是否返回“警报”状态。 (2认同)