2

このサイトの主題に関するいくつかのスレッドを読んだ後、私は次の結論に達しました。

プライベート メソッドをテストするには、次の 2 つの選択肢があります。

  • PrivateObject を使用しますが、VStudio 2012 のテスト ツールは多くのテストを実行する場合に役に立たないため、代わりに NUnit を使用することをお勧めします。

  • 保護されたメンバー (属性 + メソッド) 内のすべてのプライベート メンバーを変換し、ラッパー クラスがテスト済みのクラスを継承し、パブリック メソッドを介して保護されたメソッドを呼び出すようにします。

2番目の選択肢は機能しますが、テスト主導の理由でOOカプセル化を破るのは非常に厄介なようです。

私は、プライベート メソッドをテストするかどうか (他のスレッドですでに議論されている点)、または別のツールを使用するか、VStudio を防御するか (同上) について議論することを求めているわけではありません。

テスト容易性よりもオブジェクト指向の原則を犠牲にすることについてのあなたのコメントを聞きたいです。

ありがとうございました。

4

5 に答える 5

0

プライベート メソッドのテストは最小限にしておくことをお勧めします。テストを内部実装に結合すると、テストは非常に脆弱になり、コードをリファクタリングすることを決定するたびに、多くのテストが壊れる可能性があります。

これは多くの場合、多くのテストを中断するためにリファクタリングを行わなくなったり、リファクタリングが妨げられて単体テストを作成しなくなったりします。

クラスのパブリック API を使用して動作をテストします。実装の詳細ではありません。

于 2013-06-20T13:17:30.567 に答える