У меня возникла проблема с ArgumentCaptor, которая не может записывать аргументы при вызове того же метода несколько раз. В принципе, это не похоже на работу:Проблема с 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() всегда устанавливается на «Дон». Я также пробовал использовать InOrder с тем же результатом.
Функция (и мне stupiud) или ошибка?
Чтобы лучше объяснить этот вопрос я создал прецедент: http://pastebin.com/RE1UzJ4F
Приветствия
Да, конечно, тестовый код был просто способ объяснить проблему. –
Могу сказать, что единственная проблема на самом деле в вашем коде, а не в Mockito. Это то, что вы пытались объяснить (в этом случае мне жаль, что я пропустил это)? – iwein
Я исправил ваш образец в pastebin (без компиляции, хотя). – iwein