【发布时间】:2010-07-26 09:35:27
【问题描述】:
我遇到了 ArgumentCaptor 无法记录 多次调用同一方法时的参数。 基本上这似乎不起作用:
List<Dummy> mList = mock(List.class);
Dummy dummy = new Dummy();
when(mList.get(anyInt())).thenReturn(dummy);
Dummy d = mList.get(12);
d.setName("John");
mList.add(d);
Dummy g = mList.get(10);
g.setName("Ben");
mList.add(g);
...
verify(mymock, times(3)).doStuff(captor.capture));
assertEquals("John", captor.getAllValues().get(0).getName());
assertEquals("Ben", captor.getAllValues().get(1).getName());
assertEquals("Don", captor.getAllValues().get(2).getName());
getName() 的值始终设置为“Don”。 我也尝试过使用 InOrder,结果相同。
功能(和我一样愚蠢)还是错误?
为了更好地解释这个问题,我创建了一个用例: http://pastebin.com/RE1UzJ4F
干杯
【问题讨论】:
标签: java unit-testing mockito