目前我们在代码库上运行checkstyle,它会标记任何不使用私有访问修饰符的非静态类字段.
这是一个有效的checkstyle规则,还是存在需要非私有字段的情况?例如,我认为在同一个包中创建JUnit测试用例的原因是他们可以使用默认访问修饰符访问字段?
面向对象编程的主要特征之一是信息隐藏/封装.这意味着类只允许通过接口访问成员变量:getter和setter方法.因此,其他类无法访问成员变量并以不需要的方式对其进行修改.因此checkstyle规则有效
恕我直言,它的最大努力使场private和final何地可能.然而,对于单元测试,将它们打包为私有或通过反射访问它们可能是一种实用的选择.(这相当于同一件事)
您也可以采用黑盒测试的方法,这意味着除非您可以通过公共方法确定发生了什么,否则不应对其进行测试.(或者你的测试需要更加人为)
| 归档时间: |
|
| 查看次数: |
2142 次 |
| 最近记录: |