我在单元测试中有以下行

verify(MyMock).handleError(any(ICallBack.class),any(BaseError.class) );


但是我想写的是一个验证,以测试基本错误类(第二个参数)是否具有

BaseError::errorCode = 3


我该怎么做?
是否仅使用参数捕获?
谢谢。

最佳答案

只需为第二个参数使用合适的匹配器即可。例如:

verify(MyMock).handleError(any(ICallBack.class), eq(new BaseError(3)));


假定此实例与具有此错误代码的任何BaseError实例相同。如果给定实例ArgumentMatcher<BaseError>true,例如,您还可以实现自定义errorCode并实现返回3的逻辑。通过:

verify(MyMock).handleError(any(ICallBack.class),
                           argThat(new ArgumentMatcher<BaseError> {
   @Override
   public boolean matches(Object baseError) {
     return ((BaseError) baseError).errorCode == 3;
   }
}));

关于java - Mockito-用特定参数(条件)调用verify方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25140742/

10-09 05:30