我想检查传递给方法的参数...但检查必须在第三次调用该方法时完成。
我认为答案可能是去:
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));
关于java - Mockito 验证是否跳过多个调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42234779/