我在我的单元测试中有以下行
verify(MyMock).handleError(any(ICallBack.class),any(BaseError.class) );
Run Code Online (Sandbox Code Playgroud)
但我想写的是验证基本错误类(第二个参数)是否具有的验证
BaseError::errorCode = 3
Run Code Online (Sandbox Code Playgroud)
我该怎么做?
只有参数捕获吗?
谢谢.
只需为第二个参数使用适当的匹配器.例如:
verify(MyMock).handleError(any(ICallBack.class), eq(new BaseError(3)));
Run Code Online (Sandbox Code Playgroud)
假设此实例将等于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;
}
}));
Run Code Online (Sandbox Code Playgroud)