我在单元测试中有以下行
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/