В соответствии с заголовком просто интересно, есть ли механизм с easymock, чтобы проверить, не был ли вызван метод во время его жизни.
EasyMock: проверить, что метод в mock не называется
Ответ 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 генерирует исключение для любых методов, которые вызывают, которые явно не задавали ожиданий.