Действительно ли возможно переопределить определенные ожидания по тому же экземпляру фиктивного объекта?
Скажите, что у меня есть этот тест, который проверяет OK:
List<String> foo = createMock(List.class);
expect(foo.get(1)).andReturn("Wibble").once();
expect(foo.size()).andReturn(1).once();
replay(foo);
System.out.println(foo.get(1));
System.out.println(foo.size());
verify(foo);
То, что я затем хотел бы сделать, сбрасывается, насмешка, поддерживая все определенные ожидания, но изменяя одного из них, говорит:
reset(foo);
// Redefine just one of the two expectations
expect(foo.get(1)).andReturn("Wobble").once();
System.out.println(foo.get(1));
System.out.println(foo.size());
verify(foo);
Не работает в минуту, поскольку foo.size не определяется после вызова сброса.
Должен быть хороший путь, чтобы сделать это вместо того, чтобы восстановить ожидания каждый раз?
Заранее спасибо
Можете ли вы написать ожидания как функцию и передать ожидаемый аргумент в качестве аргумента? Я так и делал в предыдущих случаях.
private List<String> setExpectations(String expectedString) {
List<String> foo = createMock(List.class);
expect(foo.get(0)).andReturn(expectedString).once();
expect(foo.size()).andReturn(1).once();
replay(foo);
return foo;
}
Plus: return zeroth String, yes?