Mockito сейчас может быть лучше, чем когда я последний раз пробовал его, но он потерял меня, когда изменил свой API, чтобы он был несовместим с предыдущими версиями. Обновление до последней версии потребовало бы от меня изменения многих из моих существующих модульных тестов, что я счел неприемлемым. Я решил, что он слишком незрелый и нестабильный для моих нужд.
Однако это не значит, что с этим что-то не так. Версия, которую я использовал, по-прежнему работает нормально, хотя с тех пор я снова переключился на EasyMock.
Я больше знаком с EasyMock, чем с Mockito, поэтому пришлось немного покопаться. У Mockito есть страница , на которой проводится явное сравнение с точки зрения Mockito.
На мой взгляд, преимущества Mockito следующие:
EasyMock имеет очень похожий набор функций. Основные отличия Mockito основаны на тех областях EasyMock, которые команда Mockito считала ограничениями или неоптимальными методами.
С функциональной точки зрения ни один продукт не может имитировать статические методы (мне нужно было сделать это для тестирования без MBeanServer), но в этом случае вы можете использовать PowerMock поверх любой инфраструктуры.
Я бы посоветовал выбрать тот стиль, который соответствует вашим требованиям к тестированию.
Надеюсь, это поможет!
Mockito был разработан, чтобы позволить проводить модульное тестирование в стиле BDD, то есть:
в отличие от
IMHO это позволяет создавать более читабельные тесты, и позволяет разделить такие вещи, как контекст, в котором вы работаете (настройка моков) и проверка поведения, которое вас интересует. Предыдущие mocking-фреймворки требовали, чтобы вы устанавливали ожидания для каждого взаимодействия, независимо от того, имеет ли оно отношение к аспекту поведения, который вы рассматриваете в данном тесте, или нет.