2012-02-15 2 views
8

Я хотел бы лучше понять EasyMock и работать с ним. Я задал этот вопрос.Установите отрицательные ожидания в EasyMock

То, что я хотел бы сделать, это настроить отрицательное ожидание над объектом, чтобы проверить, не вызван ли какой-либо метод во время теста (при проверке этих первоначальных ожиданий).

Я знаю, что поведение проверки по умолчанию проверяет оба случая: ваши ожидания были выполнены, и никаких других вызовов не было выполнено; но в тесте нет записи о том, что какой-либо метод не вызывается, другими словами, если вы установите ожидаемое значение этого метода, и он не будет вызван, ваш тест завершится неудачно (подтверждение того, что ваша реализация ведет себя правильно!) ,

Есть ли способ использовать EasyMock, чтобы настроить это? Я не мог найти ничего в документации.

Благодарим за внимание и за вашу помощь!

ответ

11

Путь EasyMock работает как это:

  1. создать фиктивный объект для интерфейса вы хотите, чтобы имитировать,
  2. записи ожидаемое поведение, и
  3. переключатель Ложная объекта для воспроизведения состояния ,

Как и в следующем, если не устанавливать какие-либо ожидания:

mock = createMock(YourInterface.class); // 1 
// 2 (we do not expect anything) 
replay(mock); // 3 

, то это означает, что если ClassUnderTest вызов любого из методов этого интерфейса, Ложная Объект будет сгенерировано AssertionError так:

java.lang.AssertionError: 
    Unexpected method call yourMethodWhichYouDidNotExpectToBeCalled(): 

Это само по себе Отрицательный Ожидание Проверка.