Я пытаюсь практиковать TDD.Обнаружение других объектов во время выполнения TDD
Мое понимание что TDD должен идти как этот
- Написать список тестов для интерфейса/класса я собираюсь развиваться.
- Начните с самого простого не реализованного теста из моего тестового списка.
- Напишите тест, еще нет кода реализации.
- Напишите интерфейс класса, чтобы скомпилировать код.
- Запустите тест, в результате чего произошел один неудачный тест.
- Напишите реализацию, сделав тестовый проход.
- Реорганизовать беспорядок, который я создал.
- Goto 2.
У меня есть проблема при написании реализации или делать рефакторинг. Я часто прихожу к выводу, что реализация, которую я только что написал, должна быть делегирована другому классу.
Что должно сделать настоящий TDD'r в этой точке?
- Оставить существующий список тестов в покое на некоторое время и создать новую для недавно открытого класса (та же проблема может проявляться при осуществлении нового класса Offcourse)
- Перейти взаимодействия На основе образом тестирования и Mock нового класса, продолжайте с тестовыми тестами класса, над которым вы работаете, и вернитесь позже, чтобы создать правильную реализацию издеваемого класса.
- Эта ситуация не должна присутствовать. Я, наверное, не очень хорошо продумал свой первоначальный дизайн. (но разве это не победит одну из целей TDD ?!).
Мне очень хотелось бы знать, как другие люди справляются с этими ситуациями.
Но новый класс должен пройти проверку самостоятельно, не так ли? Если дизайн приводит вас в точку, где вам нравится создавать несколько классов «поддержки», начальный тест модуля становится интеграционным тестом. –