Saya menulis kelas ini yang melakukan beberapa hal (mungkin ini merupakan pelanggaran terhadap Prinsip Tanggung Jawab Tunggal). Saya menyadari sekarang bahwa beberapa bagian lain dari proyek membutuhkan sepotong logika itu dan cara saya akan mengeksposnya adalah untuk mengekstrak kelas dari Sistem asli saya Diuji.
Saya mengantisipasi bisa melakukan ini tanpa harus mengubah kode tes apa pun, tetapi ketika saya selesai, Anda bisa berpendapat bahwa tes itu bukan tes unit lagi. Ini akan menguji kelas asli dan kelas yang saya ekstrak. Dengan kata lain, saya akan memiliki satu test case, tetapi dua sistem sedang diuji.
Apakah saya harus memperbaiki kode tes saya setelah selesai? IE: Buat ExtractedClassTest dan pindahkan semua tes yang relevan dari OriginalClassTest ke dalamnya? Sepertinya ini bisa sedikit berisiko: Saya mungkin kehilangan beberapa liputan dalam proses, mungkin tidak sesederhana memindahkan tes dan saya akhirnya menulis ulang beberapa kode tes yang saya tahu dulu berfungsi tetapi mungkin tidak lagi, dll.
Di sisi lain, jika saya membiarkan OriginalClassTest apa adanya, saya dapat melihat ini sebagai masalah perawatan pengujian. Akan sedikit membingungkan untuk menemukan di mana tes ExtractedClass berada. Kesan pertama Anda adalah tidak ada. Seiring waktu dengan banyak perbaikan kode produksi, ini bisa menjadi masalah serius.
Saya baru mengenal TDD jadi saya ingin saran ahli. Terima kasih!
sumber