Hari ini kami melatih TDD dan menemukan titik kesalahpahaman berikut.
Tugasnya adalah untuk input "1,2" mengembalikan jumlah angka yang adalah 3. Apa yang saya tulis (dalam C #) adalah:
numbers = input.Split(',');
return int.Parse(numbers[0]) + int.Parse(numbers[1]); //task said we have two numbers and input is correct
Tapi cowok lain lebih suka melakukannya dengan cara lain. Pertama, untuk input "1,2" mereka menambahkan kode berikut:
if (input == "1,2")
return 3;
Kemudian mereka memperkenalkan satu tes lagi untuk input "4,5" dan mengubah implementasi:
if (input == "1,2")
return 3;
else if (input == "4,5")
return 9;
Dan setelah itu mereka berkata "Oke, sekarang kita melihat polanya" dan menerapkan apa yang awalnya saya lakukan.
Saya pikir pendekatan kedua lebih cocok dengan definisi TDD tapi ... haruskah kita begitu ketat tentang hal itu? Bagi saya tidak apa-apa untuk melewati langkah-langkah bayi sepele dan menggabungkannya menjadi "langkah kembar" jika saya cukup yakin bahwa saya tidak akan melewatkan apa pun. Apakah aku salah?
Memperbarui. Saya telah membuat kesalahan dengan tidak menjelaskan bahwa itu bukan tes pertama. Sudah ada beberapa tes sehingga "return 3" sebenarnya bukan bagian kode yang paling sederhana untuk memenuhi persyaratan.