У меня есть класс Foo, который является классом SUT и Bar, который является его соавтором. Foo вызывает run(List<Object> values) в Bar с "expectedList" в качестве аргумента. Затем Foo добавит еще несколько элементов к этому List, чтобы его состояние отличалось от того, что было во время вызова run(). Вот мой тестовый пример.
@Test
public void testFoo() {
Bar collaborator = spy(new Bar());
Foo sut = new Foo(collaborator);
verify(collaborator).run(expectedList);
}
Обратите внимание, что соавтор - это скорее объект-шпион, а не макет. Этот тестовый пример завершится неудачно, потому что даже если run() был вызван с аргументом, равным expectedList, он был изменен с тех пор, и его текущее значение больше не равно expectedList. Тем не менее, это то, как он должен работать, поэтому мне интересно, есть ли способ, чтобы Mockito сохранял моментальный снимок параметров при вызове метода и проверял их на основе этих значений, а не самых последних значений.