[英]Mockito: verify that a method was not called with specific parameter type
[英]Mockito - verify method is called with a specific parameter ( condition )
我在单元测试中有以下行
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>
并实现逻辑,如果给定实例errorCode
为3
则返回true
,例如:
verify(MyMock).handleError(any(ICallBack.class),
argThat(new ArgumentMatcher<BaseError> {
@Override
public boolean matches(Object baseError) {
return ((BaseError) baseError).errorCode == 3;
}
}));
以下应该有帮助
doAnswer(new Answer<Void>() {
public Void answer(InvocationOnMock invocation) {
Object[] args = invocation.getArguments()
assertTrue((long)args[1], 3);
return null;
}
}).when(MyMock).handleError(any(ICallBack.class),any(BaseError.class) );
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.