パブリックな内部クラスのパブリックメソッドをテストする必要がありますか?あるいは、内部クラスを使用する外部クラスパブリックメソッドをテストする必要があります(プライベートメソッドのテストと同じアプローチ)。publicな内部クラスをテストする必要がありますか?
答えて
クラス外からアクセス可能なものすべてをテストする必要があります。これには、内部クラスのパブリックメソッド(クラス自体がパブリックかプライベートかにかかわらず)が含まれます。
メソッドを公開する場合は、メソッドをテストする必要があります。
外部クラスメソッドが内部クラス1への呼び出しを委譲するだけであれば、それらのうちの1つだけをテストすることができます。どちらが本当に問題ではありません。このケースでは、あなたのデザインを再考したいと思うかもしれません - 過度の委任は私の経験では悪いデザインを意味します。
外部クラスメソッドは、単に内部クラスのメソッドを呼び出すと、あなたはこのように個別にそれらの両方をテストする必要がありますよりも、他の重要である何か他のものない場合:
- テストだけで内部クラスのメソッドを
- テストだけモック内部クラスメソッドと外部クラスメソッド(可能であれば)
- テスト外側のクラスメソッド
何が「必須」ではありません。あなたは合理的なテストを行う必要がありますが、機能テストに焦点を当て、ラインカバレッジではありません。あなたのコードは何かをテストする必要があります。
ビジネス・ロジックが内部クラス・メソッドにある場合は、これらを直接テストし、内部をトップ・レベル・クラスに変換するのに役立ちます。あなたがテストカバレッジでカップリングを導入する場合は、それが何をするかによって、外部をテストするだけで十分ですが、クラスが内部クラスであるため、カップリングはすでにそこにあります。
これらの要件がどのように実装されているかにかかわらず、クラスがすべての要件を満たしていることをテストする必要があります。各メソッドのテストを記述しないでください。むしろ、どの要件が実装されているか、それぞれの要件でカバーされているさまざまなケースがあるかどうかに基づいて、必要なテストを実施します。内部クラスやプライベートメソッドなどを記述しているかどうかは、テストプロセスとは無関係です。
- 1. Androidのアダプターは、静的内部クラスまたは非静的内部クラスである必要があります
- 2. 他の内部クラスを変更した場合、内部クラスをコンパイルする必要はありますか?
- 3. public anonymous Javaの内部クラス
- 4. Android:ListViewアダプタをViewModelクラスの一部にする必要がありますか?
- 5. クラスがポインタベースになる場合、内部オブジェクトはポインタベースである必要はありませんか?
- 6. Activityを拡張するMainActivityの内部でAsyncTaskクラスを使用する必要がありますか?
- 7. コントローラ(MVC)をテストする必要がありますか?
- 8. 要素のクリックイベントに内部関数をバインドする必要があります
- 9. 内部クラスをテストする
- 10. "using"ステートメントの内部でSqlDataReaderを使用する必要がありますか?
- 11. デリゲートをクラス内でnilに設定する必要がありますか?
- 12. 私のテストにコメントする必要がありますか?
- 13. JUnitテストは重複する必要がありますか?
- 14. 外部キーを使用する必要がありますか?
- 15. jqueryタブがdocument.ready内にある必要がありますか?
- 16. PHP - クラスを使用する必要がありますか?
- 17. Gem内のテストでマイグレーションジェネレータをテストし、マイグレーションをテストに適用する必要があります
- 18. Ajaxタイムアウト条件をテストする必要があります
- 19. 私はJavaをテストする必要があります
- 20. 親クラスが子クラスを参照する必要がありますか?
- 21. クラス内にクラスが存在するかどうかを確認する必要はありません/
- 22. このアプレットでクラスをpublicとして宣言する必要はありますか?
- 23. Rails 3でテストする必要があります:respond_with:success
- 24. なぜクラスをC++でエクスポートする必要がありますか?
- 25. java内部クラスのプライベートコンストラクタ、publicメンバ
- 26. クラスのインスタンスにメソッドをオーバーライドする必要があります
- 27. CoreignでCodeigniterクラスを使用する必要があります
- 28. JUnitテストで "public"メソッドまたは "private"メソッドをテストすることに焦点を当てる必要がありますか?
- 29. 外部システムを使用する前にテストする必要がありますか?
- 30. トランザクションの内部または外部でドメインイベントを発生させる必要がありますか?
あなたが書き込むすべてのメソッドをテストする必要があります(内部かどうかにかかわらず)。 –
特に外部クラスでテストされていないメソッドや機能をテストする必要があります。 –
@エリート紳士 - 絶対にありません。 1行または2行の長さであり、分岐ロジックまたはループロジックを持たないポイントテストメソッドはありません。唯一の呼び出しメソッドが既にテストされている場合は、プライベートメソッドをテストする点はありません。 –