Круг TDD:
"Write failing Test" -> "Write Code to fit a Test" -> "Refactor"
На шаге «Кодирование» предполагается, что код написан настолько просто, насколько это возможно, просто чтобы исправить неудачный тест. Мы не должны писать сложный код, пока он действительно не понадобится.
Следующий шаг - Refactor. Должны ли мы рефакторинг только что написанного кода? Я думаю, что нет никакого смысла, так как мы должны быть довольны кодом, поскольку тесты проходят.
Вероятно, что-то должно быть вызвано рефакторингом, например, написание кода проваливается неудачными тестами. Вот некоторые возможные факторы:
- Для написания следующего теста требуются некоторые изменения в системе (рефакторинг)
- Производительность плохая. Нам нужно улучшить его, не нарушая функциональность
- Проверка кода показывает, что написанный код труден для понимания.
Какие еще причины вы видите, чтобы начать Рефакторинг?
Также правильна ли эта схема:
"Write failing Test" -> "Code" -> "Refactor" -> "Write failing Test"
или, может быть, это следует рассматривать как
"Write failing Test" -> "Code/Refactor" -> "Write failing Test"
+
"External factor (like bad performance)" -> "Refactor".