【发布时间】:2013-06-16 18:25:18
【问题描述】:
要检查与方法调用中的参数属于某种类型的模拟的交互次数,可以这样做
mock.someMethod(new FirstClass());
mock.someMethod(new OtherClass());
verify(mock, times(1)).someMethod(isA(FirstClass.class));
这要归功于对 isA 的调用,因为 someMethod 被调用了两次,但只有一次使用参数 FirstClass
但是,使用 ArgumentCaptor 时,这种模式似乎是不可能的,即使 Captor 是为特定参数 FirstClass 创建的
这不起作用
mock.someMethod(new FirstClass());
mock.someMethod(new OtherClass());
ArgumentCaptor<FirstClass> captor = ArgumentCaptor.forClass(FirstClass.class);
verify(mock, times(1)).someMethod(captor.capture());
它说模拟被多次调用。
在捕获参数以供进一步检查的同时,有什么方法可以完成此验证?
【问题讨论】:
标签: java unit-testing mocking mockito