При написании модульных тестов для каждого объекта, с которым взаимодействует единица, я делаю эти шаги (украденные из моего понимания JBrains Интеграционные тесты - это мошенничество):
- Напишите тест в блоке, чтобы убедиться, что он отправляет правильный вызов и params сотрудничающему объекту
- Напишите тест в блоке, который гарантирует, что он обрабатывает все возможные ответы от сотрудничающего объекта. Эти ответы все высмеиваются, поэтому блок тестируется изолированно.
- Напишите тест в сотрудничающем объекте, чтобы убедиться, что он принимает вызов и параметры.
- Запишите тесты, чтобы каждый ответ был отправлен обратно.
Мой вопрос возникает, когда я редуцирую рефакторинг объекта с ответами, посмеявшимися на шаге 2. Если я изменю способ ответа объекта на вызов, ни один из тестов, которые другие объекты для этого вызова не сработает, потому что они все издевались над старым стилем. Как вы держите москиты в курсе событий, которые они издеваются? Есть ли лучшая практика для этого? Или я полностью неправильно понял вещи и делаю все это неправильно?