プライベートメソッドのユニットテストはどのように行いますか? 質問する

プライベートメソッドのユニットテストはどのように行いますか? 質問する

私は、いくつかのパブリック メソッドとプライベート メソッドを持つクラス ライブラリを構築しています。プライベート メソッドの単体テストができるようにしたいと考えています (主に開発中に行いますが、将来のリファクタリングにも役立つ可能性があります)。

これを行う正しい方法は何ですか?

ベストアンサー1

プライベート メソッドを単体テストする場合は、何かが間違っている可能性があります。単体テストは (一般的に) クラスのインターフェイス、つまりパブリック (および保護) メソッドをテストすることを目的としています。もちろん、このソリューションを「ハック」することもできます (メソッドをパブリックにするだけでもかまいません) が、次のことも検討してください。

  1. テストしたいメソッドが本当にテストする価値がある場合は、それを独自のクラスに移動する価値があるかもしれません。
  2. プライベート メソッドを呼び出すパブリック メソッドにさらにテストを追加し、プライベート メソッドの機能をテストします。(コメント者が指摘したように、これらのプライベート メソッドの機能が実際にパブリック インターフェイスの一部である場合にのみこれを行う必要があります。実際にユーザーから隠された機能 (つまり、単体テスト) を実行する場合、これはおそらく良くありません)。

おすすめ記事