4
Я изучаю тестирование с помощью EasyMock и Mockito. Каковы различия между ними? Каковы преимущества и недостатки любого из них? Какой из них лучше использовать?Различия между EasyMock и Mockito
Я изучаю тестирование с помощью EasyMock и Mockito. Каковы различия между ними? Каковы преимущества и недостатки любого из них? Какой из них лучше использовать?Различия между EasyMock и Mockito
Хотя этот вопрос главно мнение, основанное, но вы получите отличие от 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
).