【发布时间】:2013-08-24 21:12:01
【问题描述】:
我用对象列表调用方法 performAction 并验证相同。调用此方法后,我修改了一些“对象”。
Mockito 验证失败,说参数不匹配(显示修改后的对象),但我可以在调试模式下看到对象根据需要是正确的。
理想情况下,这不应该发生,因为应该根据实际调用方法的时间来应用验证。在测试方法中的验证调用期间是否比在模拟方法调用时应用验证?
测试类
@Test
public void test() throws Exception {
List<ABC> objects = new ArrayList<ABC>();
//populate objects.
activity.performActions(objects);
verify(activity, times(1)).doActivity(objects);
}
测试方法:
public void performActions(List<ABC> objects) {
activity.doActivity(urlObjects2PerformAction);
//Modify objects
}
我得到的错误如下(这是完整的代码。我给出了尽可能小的sn-p):
Argument(s) are different! Wanted:
activity.doActivity(
.......
......
【问题讨论】:
-
将代码缩减为重现问题的最短示例,粘贴此示例的完整代码,以及您得到的准确完整的错误消息。
-
@JBNizet 修改了问题。