簡単な答え: プライベート メソッドをテストすることはできません。
長い答え: プライベート メソッドをテストすることはできませんが、それが行うことを何でもテストしたい場合は、コードのリファクタリングを検討してください。2 つの簡単な方法があります。
- プライベート メソッドにアクセスするパブリック メソッドをテストします。
- プライベート コードを独自のクラスに抽出します。つまり、適切に公開できるように実装を移動します。
前者は単純ですが、より多くのテストを作成するにつれて、自分の足を撃つようになる傾向があり、後者はより良いコードとテスト設計を促進します.
でたらめな答え: わかりました、だから私は嘘をつきました。いくつかのリフレクション マジックを使用してプライベート メソッドをテストできます(一部の TDD ツールはプライベート メソッドのテストをサポートしています)。ただし、私の経験では、複雑な単体テストにつながります。複雑な単体テストはコードの質を低下させます。より悪いコードは怒りにつながります。怒りは憎しみにつながります。憎しみは苦しみにつながる…
生産コードが悪化することの直接的な影響は、テスト対象のクラスが大きくなり、多くのことを処理する傾向があり (単一責任の原則に違反)、保守が困難になることです。これは、TDD の目的、つまり製品コードをテスト可能、拡張可能、さらに重要なことに再利用可能にするという目的を無効にします。
デプロイされたクラスのテストを作成している場合は、プライベート メソッドを呼び出すすべてのものを調査し、それに応じてテストを作成できます。クラスを書き直す機会があれば、クラスを分割してリファクタリングしてください。運が良ければ、コードを再利用して利用できるようになります。