2013-11-10 2 views

ответ

11

Хотя этот вопрос главно мнение, основанное, но вы получите отличие от here:

различие:

  • нет режимов записи/воспроизведения - нет необходимости в них. Там только 2 вещи, которые вы можете сделать с Mockito mocks - проверить или заглушить. Stubbing идет перед выполнением и проверкой впоследствии.
  • все москиты «хороши» (даже как-то приятнее, потому что методы возврата коллекции возвращают пустые коллекции вместо нулей). Несмотря на то, что приколы приятны, вы можете проверить их как строго
    , как вы хотите, и обнаружить любое нежелательное взаимодействие.
  • Явный язык для лучшей удобочитаемости: verify() и when() VS смесь expect (mock.foo()) и mock.foo() (простой вызов метода без «ожидать»). Я уверен, что некоторые из вас найдут этот аргумент субъективным :)
  • упрощенная модель stubbing - зашитые методы воспроизводят все время с заштрихованным значением независимо от того, сколько раз они вызываются. Работает точно так же, как и EasyMock иStubReturn(), иStubThrow(). Кроме того, вы можете заглушить разные значения возврата для разных аргументов (например, в EasyMock).
  • Проверка зашитых методов не является обязательной, поскольку обычно более важно проверить правильность использования заштрихованного значения, а не то, откуда оно взялось.
  • проверка явно - проверка ошибок указывает на строку кода, показывающую, какое взаимодействие не удалось. проверка в порядке является гибкой и не требует проверки каждого отдельного взаимодействия.
  • пользовательские аргументы, использующие совпадения, используют hamcrest matchers, поэтому вы можете использовать существующие сочетания hamcrest. (EasyMock также может интегрироваться с hamcrest, хотя он не является частью EasyMock, а hamcrest. См. Документацию по hamcrest
    ).
Смежные вопросы