Saya cukup pemula dalam pengujian kode, dan pernah menjadi assert
pelacur sebelumnya. Satu hal yang mengkhawatirkan saya dalam unit testing adalah bahwa sering kali mengharuskan Anda untuk membuat public
(atau setidaknya internal
) bidang yang private
seharusnya, untuk melepaskan readonly
mereka, membuat private
metode protected virtual
sebagai gantinya, dll ...
Baru-baru ini saya menemukan bahwa Anda dapat menghindari ini dengan menggunakan hal-hal seperti kelas PrivateObject untuk mengakses apa pun dalam objek melalui refleksi. Tapi ini membuat tes Anda kurang dapat dipertahankan (hal-hal akan gagal pada eksekusi daripada waktu kompilasi, itu akan rusak oleh perubahan nama sederhana, lebih sulit untuk debug ...). Apa pendapat Anda tentang ini? Apa praktik terbaik dalam pengujian unit terkait pembatasan akses?
sunting: pertimbangkan misalnya bahwa Anda memiliki kelas dengan cache di file pada disk, dan dalam tes Anda, Anda ingin menulis ke memori sebagai gantinya.