Bugün TDD'yi eğitiyorduk ve aşağıdaki yanlış anlama noktasını bulduk.
Görev, "1,2" girişi için, 3 olan sayıların toplamıdır. Yazdıklarım (C #):
numbers = input.Split(',');
return int.Parse(numbers[0]) + int.Parse(numbers[1]); //task said we have two numbers and input is correct
Fakat diğer çocuklar bunu başka şekilde yapmayı tercih etti. İlk önce "1,2" girişi için aşağıdaki kodu eklediler:
if (input == "1,2")
return 3;
Ardından "4,5" girişi için bir test daha yaptılar ve uygulama değişti:
if (input == "1,2")
return 3;
else if (input == "4,5")
return 9;
Ve ondan sonra "Tamam, şimdi deseni görüyoruz" dediler ve başlangıçta yaptığım şeyi uyguladılar.
İkinci yaklaşımın TDD tanımına daha uygun olduğunu düşünüyorum ama ... bu konuda çok mu katı olmalıyız? Benim için önemsiz bebek adımlarını atlamak ve hiçbir şeyi atlamamaya yetecek kadar emrim varsa bunları "ikiz adımlarla" birleştirmek tamamdır. Yanlış mıyım?
Güncelleme. İlk test olmadığını açıklığa kavuşturarak bir hata yaptım. Zaten bazı testler yapıldı, bu nedenle "return 3" gereksinimi karşılayacak en basit kod parçası değildi.