В даний час я дізнаюся про TDD і намагаюся втілити це в свої особисті проекти. Я також широко використовував контроль версій у багатьох таких проектах. Мене зацікавило взаємодія цих двох інструментів у типовому робочому процесі, особливо якщо мова йде про максимум, щоб утримувати комісії невеликими. Ось кілька прикладів, які приходять на думку:
Я запускаю новий проект і пишу простий тест для створення класу, який ще не існує. Чи повинен я зробити тест перед написанням класу, хоча тест навіть не складається? Або я повинен заглушити мінімальну кількість коду, необхідного для складання тесту, перш ніж зробити його?
Я знаходжу помилку і пишу тест, щоб відтворити її. Чи повинен я здійснити невдалий тест або здійснити виправлення помилки, а потім здійснити?
Це два приклади, які відразу приходять на думку. Сміливо надайте додаткові приклади у своїй відповіді.
Редагувати:
В обох прикладах я зробив припущення, що одразу після написання тесту я напишу код, щоб тест пройшов. Можливо, виникла й інша ситуація: я працюю над проектом, використовуючи TDD, кілька годин без зобов'язань. Коли я, нарешті, беру на себе зобов’язання, я хочу розбити свою роботу на невеликі шматки. (Git робить це порівняно просто, навіть якщо ви хочете зробити лише деякі зміни в одному файлі.)
Це означає, що моє запитання стосується як того, що робити, так і питання про те, коли потрібно здійснити.