EasyMock - как сбросить насмешку, но поддержать ожидания?

Действительно ли возможно переопределить определенные ожидания по тому же экземпляру фиктивного объекта?

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

Должен быть хороший путь, чтобы сделать это вместо того, чтобы восстановить ожидания каждый раз?

Заранее спасибо

8
задан Ben 23 June 2010 в 10:36
поделиться

1 ответ

Можете ли вы написать ожидания как функцию и передать ожидаемый аргумент в качестве аргумента? Я так и делал в предыдущих случаях.

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?

2
ответ дан 6 December 2019 в 01:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: