我目前正在将旧项目的单元测试从Mockito v1升级到Mockito v2。
在其中一个单元测试中,我有以下代码:
Listener listener = new Listener();
Alert alert = new Alert (listener);
alert.action(); // action calls 5 times the "notify" method on "listener"
ArgumentCaptor<Mess> argument = ArgumentCaptor.forClass(Mess.class);
verify(listener, times(5)).notify(argument.capture());
List<Mess> list_mess = argument.getAllValues(); // A
// The test checks list_mess and does some stuff on "alert"
alert.action(); // action calls 5 times the "notify" method on "listener"
argument = ArgumentCaptor.forClass(Mess.class);
verify(listener, times(10)).notify(argument.capture());
list_mess = argument.getAllValues(); // B
两者&#34;验证&#34;没关系但由于我一直在使用Mockito v2,list_mess有不同的值:
是否有人对此行为有解释?在这一点上,我在Mockito wiki上找不到任何东西。根据&#34;捕获&#34;的javadoc方法,list_mess大小应该仍然是10:
用它来捕获参数。此方法必须在验证中使用。
在内部,此方法注册{@link ArgumentMatcher}的特殊实现。
此参数匹配器存储参数值,以便您以后可以使用它来执行断言。