Anda pasti harus melakukan hal yang sama jika tidak lebih baik merawat unit test Anda daripada kode produksi Anda dalam hal kualitas dan keterbacaan. Tes unit sering merupakan hal pertama yang Anda lihat ketika mencoba memahami apa yang dilakukan oleh beberapa kode, dan pembaca harus dengan cepat memahami apa yang dipertaruhkan ketika melihat tes. Unit test juga cenderung banyak berubah dan akan banyak pecah jika desain mereka tidak kuat, yang mana membatalkan manfaat memiliki tes.
Pelanggaran Hukum Demeter jelas merupakan masalah dalam tes unit Anda karena alasan itu dan juga 2 orang lain yang muncul di benak saya:
Jika tes Anda melanggar Hukum Demeter di bagian Atur atau Bertindak mereka , itu mungkin pertanda bahwa kode produksi Anda juga melakukannya, karena tes unit Anda hanyalah konsumen kode Anda dan mungkin akan memanggil dan mengoperasikan kelas yang diuji di dalam yang sama. cara yang dilakukan kode produksi lainnya.
Jika tes Anda melanggar Hukum Demeter di bagian Tegasnya (yaitu Anda memverifikasi nilai sesuatu yang bersarang dalam grafik dependensi objek yang diuji), mungkin itu benar-benar tes integrasi daripada tes unit. Dengan kata lain, jika dalam TestA Anda menyatakan bahwa ABCD sama dengan sesuatu, mungkin Anda benar-benar mencoba menguji D dan A daripada hanya A.
Ngomong-ngomong, saat Anda mengatakannya
Saya sering melanggar Hukum Demeter, untuk menulis lebih cepat dan tidak menggunakan banyak variabel.
Anda harus menyadari tulisan itu
var grab = myDependency.Grab;
var something = grab.Something;
var very = something.Very;
very.Deep();
sebenarnya tidak lebih baik daripada Demeter bijaksana
myDependency.Grab.Something.Very.Deep();
jika itu yang Anda maksud.