在练习提取和覆盖重构时,我经常举出非常熟练的教练和培训师的例子,其中提取方法的访问修饰符从私有更改为受保护。
protected CollectResultReader loadRecordFromOutFile() {
return CollectResultReader.factory("../record.json");
}
在上面的示例中,代码被提取出来,IDE 在目标代码中创建了一个带有私有修饰符的新方法。这是期望的行为。为了能够覆盖被测类,它被重新编辑为受保护。这是不希望的,因为这意味着生产代码失去了可读性并获得了不必要的访问权限。
请注意,我想使用纯 Java 并且没有模拟框架。我将单元测试保存在同一个包中的不同路径中。
我的问题:为什么不将方法包设为私有(无修饰符)?
请参阅中的包私有修饰符:控制对类成员的访问