Установите негативные ожидания в EasyMock - PullRequest
8 голосов
/ 15 февраля 2012

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

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

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

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

Спасибо за внимание и заранее за помощь!

1 Ответ

11 голосов
/ 15 февраля 2012

EasyMock работает следующим образом:

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

Как и в случае, если вы не устанавливаете ожидание:

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

, то это означает, что если ClassUnderTest вызвать любой изметоды интерфейса, Mock Object выдаст AssertionError, например:

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

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

...