Я знаю, что этот вопрос является частью религиозной войны, но у меня есть следующая ситуация:
У меня есть объект, Responder
, который вызывает метод для объект Updater
в ответ на различные события. Недавно я разделил тестирование таким образом: тесты на основе состояния для самого метода Updater
и тесты на основе поведения для вызывающего его Responder
. То есть я имитирую Updater
в тестах Responder
, просто чтобы убедиться, что он вызывается.
Должен ли я по-прежнему тестировать состояние объектов, которые должны быть обновлены в тестах Responder
, а не имитировать Updater
? Мне нравится то, что я сделал, потому что это требует меньше настроек и, кажется, лучше изолирует тесты. Однако это, похоже, связывает реализацию и ожидаемое поведение Responder
с Updater
. Это слишком хрупко? Это упрощенный пример.