Преимущества использования Mock в модульном тестировании:
- Полный контроль над поведением mocked объектов. www.javatpoint.com Можно проверить, правильно ли объект-заглушка используется тестируемым объектом. dzone.com
- Возможность проверить, сколько раз вызван определённый метод. www.javatpoint.com
Недостатки использования Mock: по умолчанию методы mock-объекта, если не определять их поведение, возвращают значения по умолчанию. otus.ru
Преимущества использования Spy в модульном тестировании:
- Возможность «шпионить» за реальным объектом. dzone.com otus.ru Можно вызывать все реальные методы объекта, отслеживая каждое взаимодействие. dzone.com
- Полезен, когда нужно протестировать большой класс и заменить только некоторые методы (частичное мокинг). stackoverflow.com
Недостатки использования Spy: по умолчанию у spy-объекта исполняется оригинальное поведение методов объекта. otus.ru
Выбор между Mock и Spy зависит от конкретных задач модульного тестирования.