У меня есть класс 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 сохранял моментальный снимок параметров при вызове метода и проверял их на основе этих значений, а не самых последних значений.