Подтвердить что ты не робот

EasyMock: проверить, что метод в mock не называется

В соответствии с заголовком просто интересно, есть ли механизм с easymock, чтобы проверить, не был ли вызван метод во время его жизни.

4b9b3361

Ответ 1

Я знаю, что этот вопрос очень старый, но у меня был тот же вопрос, что и у OP, и он немного поглядел вокруг. Я нашел следующее решение:

Добавив .andThrow(new AssertionFailedError()).anyTimes(); в конце вашего объявления EasyMock, тест завершится неудачно, когда вызывается метод издевательства.

Причина в том, что это лучше, чем просто не использовать NiceMock и позволить сбой теста из-за вызова немодулированного метода, потому что это позволяет вам специально проверить, что метод XYZ не был вызван в данном сценарии.

Я хотел бы дать Дэвиду Уоллесу кредит за этот ответ. Я нашел это решение в своем ответе на следующее сообщение: Проверить, что метод void не вызывался с EasyMock

Ответ 2

Из документа EasyMock :

Nice Mocks

В Mock Object, возвращаемом mock(), поведение по умолчанию для всех методов заключается в вызове AssertionError для всех неожиданных вызовов методов. Если вы хотите "хороший" Mock Object, который по умолчанию разрешает все вызовы методов и возвращает соответствующие пустые значения (0, null или false), вместо этого используйте niceMock().

Так что вы спрашиваете, это поведение по умолчанию.

Ответ 3

По умолчанию Easymock генерирует исключение для любых методов, которые вызывают, которые явно не задавали ожиданий.