Saat ini saya belajar tentang TDD dan mencoba mempraktikkannya dalam proyek pribadi saya. Saya juga telah menggunakan kontrol versi secara luas pada banyak proyek ini. Saya tertarik pada interaksi kedua alat ini dalam alur kerja yang khas, terutama ketika sampai pada pepatah untuk menjaga komit kecil. Berikut adalah beberapa contoh yang muncul di pikiran:
Saya memulai proyek baru dan menulis tes sederhana untuk membuat kelas yang belum ada. Haruskah saya melakukan tes sebelum menulis kelas meskipun tes bahkan tidak dikompilasi? Atau haruskah saya mematikan jumlah minimum kode yang diperlukan untuk mendapatkan tes untuk dikompilasi sebelum melakukan?
Saya menemukan bug dan menulis tes untuk membuatnya kembali. Haruskah saya melakukan tes gagal atau menerapkan perbaikan bug dan kemudian melakukan?
Ini adalah dua contoh yang langsung terlintas dalam pikiran. Jangan ragu untuk memberikan contoh tambahan dalam jawaban Anda.
Edit:
Saya membuat asumsi dalam kedua contoh itu segera setelah menulis tes saya akan menulis kode untuk lulus ujian. Situasi lain mungkin juga muncul: Saya mengerjakan proyek menggunakan TDD selama beberapa jam tanpa melakukan. Ketika saya akhirnya membuat komitmen, saya ingin memecah pekerjaan saya menjadi potongan-potongan kecil. (Git membuat ini relatif mudah walaupun Anda hanya ingin melakukan beberapa perubahan dalam satu file.)
Ini berarti bahwa pertanyaan saya adalah tentang apa yang harus dilakukan dan tentang kapan harus berkomitmen.