Konteks:
Saat ini saya sedang mengerjakan proyek kecil dengan Python. Saya biasanya menyusun kelas saya dengan beberapa metode publik yang didokumentasikan tetapi terutama berkaitan dengan konsep tingkat tinggi (apa yang harus diketahui dan digunakan oleh pengguna kelas), dan banyak metode tersembunyi (dimulai dengan garis bawah) yang bertanggung jawab atas pemrosesan tingkat kompleks atau rendah.
Saya tahu bahwa tes sangat penting untuk memberikan kepercayaan pada kode dan untuk memastikan bahwa modifikasi selanjutnya tidak merusak perilaku sebelumnya.
Masalah:
Untuk membangun metode publik tingkat tinggi di atas dasar tepercaya, saya biasanya menguji metode pribadi. Saya merasa lebih mudah untuk menemukan apakah modifikasi kode telah memperkenalkan regresi dan di mana. Ini berarti bahwa tes internal tersebut dapat melanggar revisi kecil dan perlu diperbaiki / diganti
Tetapi saya juga tahu bahwa pengujian unit metode pribadi setidaknya merupakan konsep yang disengketakan atau lebih sering dianggap sebagai praktik yang buruk. Alasannya adalah: hanya perilaku publik yang harus diuji ( ref. )
Pertanyaan:
Saya peduli mengikuti praktik terbaik dan ingin memahami:
- mengapa menggunakan tes unit pada metode pribadi / tersembunyi buruk (apa risikonya)?
- apa praktik terbaik ketika metode publik dapat menggunakan pemrosesan tingkat rendah dan / atau kompleks?
Presisi:
- ini bukan pertanyaan bagaimana . Python tidak memiliki konsep privasi dan metode tersembunyi yang tidak didaftar tetapi dapat digunakan saat Anda mengetahui namanya
- Saya tidak pernah diajari aturan dan pola pemrograman: kelas terakhir saya berasal dari tahun 80-an ... Saya terutama belajar bahasa melalui percobaan dan kegagalan dan referensi di Internet (Stack Exchange menjadi favorit saya selama bertahun-tahun)