繁体   English   中英

Mockito-用特定参数(条件)调用verify方法

[英]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>并实现逻辑,如果给定实例errorCode3则返回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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM