После рефакторинга сервиса упали 30 тестов, хотя поведение не изменилось
Тесты сервиса оформления заказа устроены так:
service.checkout(cart);
verify(priceCalculator).calculate(cart);
verify(repository).save(any(Order.class));
verify(eventPublisher).publish(any());
Разработчик объединил расчёт цены и сохранение в один метод репозитория — результат для клиента тот же, но 30 тестов упали. Что в тестах стоит изменить?
- Проверять результат и наблюдаемые эффекты, а verify оставлять для важных взаимодействий
- Добавить ещё больше verify, чтобы описать каждый вызов
- Заменить verify на verifyNoMoreInteractions
- Не проводить рефакторинг без предварительного обновления тестов
