在练习提取和覆盖重构时,我经常使用非常熟练的教练和培训师的示例,其中提取的方法的访问修饰符从私有更改为受保护。
protected CollectResultReader loadRecordFromOutFile() {
return CollectResultReader.factory("../record.json");
}
在上面的示例中,代码被解压缩,IDE在目标代码中创建了一个带有私有修饰符的新方法。这是理想的行为。为了能够覆盖被测试的类,它被重新编辑为受保护。这是不受欢迎的,因为这意味着生产代码失去了可重用性并获得了不必要的访问权。
请注意,我想使用纯Java而不使用模拟框架。我将单元测试保存在同一个包中的不同路径中。
我的问题:为什么不让方法包私有(没有修饰符)?
中的包私有修饰符答案 0 :(得分:0)
只要您将测试类保持在同一个包中,就没有理由将其设为protected
。包私密就足够了。
我一直在项目中工作,我被迫让他们受到保护。原因是包私有不是java开发人员所知道的。