NUnitを使用してプライベートメソッドと内部クラスをテストするにはどうすればよいですか?NUnitでプライベートメソッドと内部クラスをテストしますか?
12
A
答えて
4
私は通常そうしません。 プライベートメソッドと内部クラスを使用するパブリックメソッドを徹底的にテストすると、公開されていないプライベート機能の全範囲をテストできるはずです。
0
テスト固有の派生クラスを使用して、それらを呼び出す方法を公開する必要があります。
30
プライベートメソッド:
あなたは非パブリックメソッドをテストしようとしている場合、それは通常、あなたはそれが間違ってやっていることを意味します。
テストする機能はありますが、クラスに公開したくない場合は、コードが何かを伝えようとしています。あなたのクラスにはおそらくあまりにも多くの責任があります。プライベート機能を新しいクラスに抽出し、新しいクラスのテストを作成し、古いクラスを新しいクラスのプライベートインスタンスにすることを真剣に検討する必要があります。
内部クラス:
この1つはあなたが再利用する他の人のためのクラスライブラリを書いている場合は特に、より有効です。あなたは、一般的な目的のために設計されていないが、単体テストを書くクラスを持っているかもしれません。
この場合、 InternalsVisibleToAttributeをご覧ください。
2
私がこれを処理する方法は、すべての方法を公開することです。私はそれが悪いことを知っているが、私と一緒に瞬間を耐える。
IoCを使用する場合、ロジックを持つすべてのクラスのインターフェイスがあります。 基本的に、実際の実装ではなく、インタフェースに対してコードを作成します。これは、すべてのメソッドをpublicとマークし、そのクラスのすべてのメソッドの単体テストを書くことができる点を除けば、クラスの使用方法には影響しません。
関連する問題
- 1. 内部クラスからプライベートメソッドにアクセスできませんか?
- 2. なぜ内部クラスでプライベートメソッドにアクセスできるのですか?
- 3. R6クラスのプライベートメソッドのテストR
- 4. kotlin内部クラスはプライベートメソッドの外部にアクセスできませんか?
- 5. 内部クラスをテストする
- 6. 派生クラスは、内部クラスのフレンドである親クラスの保護された内部クラスのプライベートメソッドにアクセスできますか?このクラスを考慮
- 7. NUnitテストで外部アンマネージドDLLをアンロード
- 8. 内部メソッドとプライベートメソッドのAOP Java
- 9. (NUnit)同じブラウザウィンドウを使用して同じクラス内でテストを実行する
- 10. NUnitを停止してクラス内でテストを実行する方法
- 11. [テスト]と[テスト()]のNunitメソッドとクラス属性の宣言の違い
- 12. 私がテストしているクラスでは、GetRequestクラスをUnirestでインスタンス化するプライベートメソッドがあります。プライベートメソッドでコンストラクタへの呼び出しを嘲笑します。
- 13. メモリ内のSQLiteデータベースでNunitテストを実行しようとしています
- 14. テスト済みクラスの内部オブジェクトをアサートします
- 15. nUnit拡張モジュールは、テストと同じアセンブリ内にあります。
- 16. NUnitでアセンブリ内のテストが見つかりません
- 17. 他のプライベートメソッド内からself.xxx()を使用してプライベートメソッドxxxを呼び出すと、 "
- 18. クラスのプライベートメソッドであるデーモンスレッドを開始しますか?
- 19. 次のテストで[ValueSourceAttribute] Nunitテストの出力を使用します。
- 20. セッター内でプライベートメソッドをテストするにはどうすればいいですか?
- 21. カバレッジ内のプライベートメソッドを除外します
- 22. クラス<<内部でクラス定義は何をしますか?
- 23. NUnitテストはSerializationExceptionで終了しますが、NUnitで実行されないとうまく動作します
- 24. Javassistを使用して親クラスのプライベートメソッドをインスツルメントしますか?
- 25. 外部クラスを静的として定義し、内部静的クラスを囲むことはできますか?
- 26. nunit-consoleはテストフィクスチャ内のすべてのテスト名を表示できますか?
- 27. EasyMockを使用して内部クラスをテストする方法
- 28. NUnit ModelViewFactoryとリポジトリモックでテストを作成
- 29. NUnitテスト結果とレポートユニット
- 30. Visual Studio Test Runnerの外部テストスイートアセンブリからNUnitテストを実行
また、InternalsVisibleToを使用して、テストアセンブリでのみ使用されるコンストラクタ/メソッドを公開し、クライアントコードから非表示にするコンストラクタ/メソッドを公開することもできます。 – jlafay