簡體   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