抽出とオーバーライドのリファクタリングを実践するとき、抽出されたメソッドのアクセス修飾子がプライベートからプロテクトに変更される非常に熟練したコーチやトレーナーの例がよくあります。
protected CollectResultReader loadRecordFromOutFile() {
return CollectResultReader.factory("../record.json");
}
上記のコードが抽出された例では、IDE はターゲット コードにプライベート修飾子を含む新しいメソッドを作成しました。それが望ましい動作です。テスト中のクラスをオーバーライドできるようにするために、保護された状態で再編集されました。これは、製品コードが読みにくくなり、望ましくないアクセスが得られることを意味するため、望ましくありません。
純粋な Java を使用し、モッキング フレームワークを使用しないことに注意してください。単体テストを同じパッケージ内の別のパスに保管しています。
私の質問:メソッド パッケージを非公開 (修飾子なし) にしないのはなぜですか?
クラスのメンバーへのアクセスの制御で、パッケージの private 修飾子を参照してください。