Saya telah merancang dan mengembangkan kode dengan gaya TDD untuk waktu yang lama. Yang mengganggu saya tentang TDD adalah menulis tes untuk kode yang tidak mengandung logika bisnis atau perilaku menarik. Saya tahu TDD adalah kegiatan desain lebih dari pengujian tetapi kadang-kadang saya merasa tidak ada gunanya menulis tes dalam skenario ini.
Misalnya saya punya skenario sederhana seperti "Ketika pengguna mengklik tombol centang, itu harus memeriksa validitas file" . Untuk skenario ini saya biasanya mulai menulis tes untuk kelas presenter / controller seperti di bawah ini.
@Test
public void when_user_clicks_check_it_should_check_selected_file_validity(){
MediaService service =mock(MediaService);
View view =mock(View);
when(view.getSelectedFile).thenReturns("c:\\Dir\\file.avi");
MediaController controller =new MediaController(service,view);
controller.check();
verify(service).check("c:\\Dir\\file.avi");
}
Seperti yang Anda lihat, tidak ada keputusan desain atau kode menarik untuk memverifikasi perilaku. Saya menguji nilai dari tampilan yang diteruskan ke MediaService. Saya biasanya menulis tetapi tidak suka tes semacam ini. Apa yang kamu lakukan terhadap situasi ini? Apakah Anda menulis ujian sepanjang waktu?
PEMBARUAN:
Saya telah mengubah nama tes dan kode setelah keluhan. Beberapa pengguna mengatakan bahwa Anda harus menulis tes untuk kasus sepele seperti ini sehingga di masa depan seseorang mungkin menambahkan perilaku yang menarik. Tapi bagaimana dengan "Kode untuk hari ini, desain untuk besok." ? Jika seseorang, termasuk saya, menambahkan kode yang lebih menarik di kemudian hari, tes dapat dibuat untuk itu. Mengapa saya harus melakukannya sekarang untuk kasus-kasus sepele?