Saya cukup pemula dalam pengujian kode, dan pernah menjadi assertpelacur sebelumnya. Satu hal yang mengkhawatirkan saya dalam unit testing adalah bahwa sering kali mengharuskan Anda untuk membuat public(atau setidaknya internal) bidang yang privateseharusnya, untuk melepaskan readonlymereka, membuat privatemetode protected virtualsebagai 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.