Мне бы хотелось, чтобы макет EasyMock мог ожидать пустой список несколько раз, даже когда к списку, который возвращается в первый раз, добавлены элементы.
Возможно ли это? Поскольку пустой список, созданный в ожидании, сохраняется для всего воспроизведения и поэтому сохраняет все элементы, добавленные к нему между вызовами.
Вот пример кода, показывающий, чего я пытаюсь избежать:
public class FakeTest {
private interface Blah {
public List<String> getStuff();
};
@Test
public void theTest(){
Blah blah = EasyMock.createMock(Blah.class);
//Whenever you call getStuff() an empty list should be returned
EasyMock.expect(blah.getStuff()).andReturn(new ArrayList<String>()).anyTimes();
EasyMock.replay(blah);
//should be an empty list
List<String> returnedList = blah.getStuff();
System.out.println(returnedList);
//add something to the list
returnedList.add("SomeString");
System.out.println(returnedList);
//reinitialise the list with what we hope is an empty list
returnedList = blah.getStuff();
//it still contains the added element
System.out.println(returnedList);
EasyMock.verify(blah);
}
}