Mockito 验证跳过多个呼叫?
Mockito verify skip a number of calls?
我想检查传递给方法的参数...但是必须在第 3 次调用此方法时进行检查。
我认为答案可能是:
verify( myMock, times( 2 ) ).myMethod( any() );
verify( myMock ).myMethod( paramIWant );
...但它在第一行失败:
But was 5 times. Undesired invocation:
...因为在我感兴趣的那个之后确实还有2个电话
为此使用参数捕捉器。你可以在验证的时候传入捕获器,然后取出所有作为参数传递给这个方法的值,并检查你想要的。
ArgumentCaptor<SomeClass> myCaptor = ArgumentCaptor.forClass(SomeClass.class);
verify(myMock,times(5)).myMethod(myCaptor.capture());
List<SomeClass> paramsPassed = myCaptor.getAllValues();
assertEquals(paramIWant, paramsPassed.get(2));
我想检查传递给方法的参数...但是必须在第 3 次调用此方法时进行检查。
我认为答案可能是:
verify( myMock, times( 2 ) ).myMethod( any() );
verify( myMock ).myMethod( paramIWant );
...但它在第一行失败:
But was 5 times. Undesired invocation:
...因为在我感兴趣的那个之后确实还有2个电话
为此使用参数捕捉器。你可以在验证的时候传入捕获器,然后取出所有作为参数传递给这个方法的值,并检查你想要的。
ArgumentCaptor<SomeClass> myCaptor = ArgumentCaptor.forClass(SomeClass.class);
verify(myMock,times(5)).myMethod(myCaptor.capture());
List<SomeClass> paramsPassed = myCaptor.getAllValues();
assertEquals(paramIWant, paramsPassed.get(2));