私は上の議論見つけ、あなたがプライベートメソッドのテストドゥ参考に。
一部のクラスでは、メソッドを保護したいが、それらをテストしたいと思いました。これらのメソッドのいくつかは静的で短いものです。ほとんどのパブリックメソッドはそれらを使用するため、後でテストを安全に削除できるでしょう。しかし、TDDアプローチから始めてデバッグを回避するために、私は本当にそれらをテストしたいと思います。
私は次のことを考えました:
- 回答でアドバイスされているメソッドオブジェクトは、これではやり過ぎのようです。
- パブリックメソッドから開始し、上位レベルのテストによってコードカバレッジが提供されたら、それらを保護してテストを削除します。
- 保護されたメソッドをパブリックにするテスト可能なインターフェイスを持つクラスを継承します
ベストプラクティスはどれですか。他に何かありますか?
JUnitは自動的に保護されたメソッドをパブリックに変更するようですが、私はそれを深く見ていませんでした。PHPはリフレクションを介してこれを許可しません。