私はコードテストの初心者であり、assert
以前は売春婦でした。ユニットテストで私を心配していることの1つは、そうでなければそうであったpublic
(または少なくともinternal
)フィールドを作成し、それらprivate
を解除readonly
し、代わりにprivate
メソッドprotected virtual
を作成するなどが必要になることが多いということです...
私は最近、PrivateObjectクラスのようなものを使用して、リフレクションを介してオブジェクト内のすべてにアクセスすることで、これを回避できることを発見しました。しかし、これにより、テストの保守性が低下します(コンパイル時ではなく実行時に失敗します。単純な名前変更によって破損し、デバッグが難しくなります...)。これについてのあなたの意見は何ですか?アクセス制限に関する単体テストのベストプラクティスは何ですか?
編集:たとえば、ディスク上のファイルにキャッシュを持つクラスがあり、テストでは代わりにメモリに書き込むことを検討してください。