После прочтения "1001 * Мокков не заглушки" Мартина Фаулера я обнаружил, что я практикую TDD в "модернистской" манере.
Но мне интересно, можно ли даже в издевательской программе TDD зайти слишком далеко.
Вот пример обновленный в псевдокоде в стиле Python:
def sync_path(self):
if self.confirm_or_create_connection():
self.sync(self.dirpath)
Метод verify_or_create_connection () создает соединение с сервером.
Я проверил метод, подобный этому, в двух тестах, оба из которых имитируют verify_or_create_connection () и sync () (даже если они оба метода в одном классе). В одном тесте mock verify_or_create_connection () возвращает True, и тест подтверждает, что sync () был вызван, а в другом mock verify_or_create_connection () возвращает False, и тест подтверждает, что sync () не был вызван.
Это разумно? Или я должен насмехаться над объектами, которые подтверждают, которые подтверждают, или вызывают () синхронизация ()? (У меня есть другие тесты обоих этих методов, которые уже делают это.)
Пожалуйста, не отвечайте на вопрос, объясняя, что вместо этого я должен практиковать «классический» TDD. Это ответ на другой вопрос: Должен ли я практиковаться в моде или классическом TDD?