Şu anda TDD'yi öğreniyorum ve kişisel projelerimde uygulamaya koymaya çalışıyorum. Ayrıca bu projelerin çoğunda sürüm kontrolünü yaygın olarak kullandım. Bu iki aracın tipik bir iş akışındaki etkileşimi ile ilgileniyorum, özellikle de işleri küçük tutmak için en fazla söz konusu olduğunda. İşte akla gelen bazı örnekler:
Yeni bir projeye başladım ve henüz varolmayan bir sınıf oluşturmak için basit bir test yazıyorum. Test derlemese bile, dersi yazmadan önce testi yapmalı mıyım? Yoksa test yapmadan önce testin derlenmesini sağlamak için gereken minimum miktarda kodu saptayım mı?
Bir hata bulup yeniden oluşturmak için bir test yazarım. Başarısız olan testi yapmalı mıyım veya hata düzeltmeyi uygulamalı mıyım ve sonra yapmalı mıyım?
Bunlar hemen akla gelen iki örnektir. Cevabınıza ek örnekler vermekten çekinmeyin.
Düzenle:
Her iki örnekte de, testi yazdıktan hemen sonra testi geçmek için kod yazacağımı varsaydım. Başka bir durum da ortaya çıkabilir: TDD kullanarak birkaç saat taahhütte bulunmadan bir proje üzerinde çalışıyorum. Sonunda taahhütte bulunduğumda işimi küçük parçalara bölmek istiyorum. (Git, değişikliklerin sadece bir kısmını tek bir dosyada yapmak istese bile, bunu nispeten kolaylaştırır.)
Bu, sorumun ne zaman ne kadar kararlı olacağına dair ne kadar kararlı olduğum anlamına geliyor .