Mas*_*oda 4 java unit-testing encapsulation
如果在单元测试中(在单独的包中)需要来自类的私有静态最终值X,那么应如何获取X?我可以想到三个选项,其中没有一个看起来很干净:
1)将X复制到测试类中.我担心如果源的X被更改,而测试的X被保留,单元测试仍然会在它失败时通过.
2)让X公开.我担心这打破了封装.尽管如此,鉴于X是最终的,我认为这是最好的选择.
3)为X创建一个公共getter.如果只能从类和单元测试中访问X,这似乎也打破了封装.
Isa*_*lst 10
我会说你不需要访问它.如果某些内容是私有的,那么它将用作实现细节,并且应该对测试不可见.您应该测试类的要求,而不是实现细节.你为什么问?因为随着时间的推移,植入可能会改变(或进化),而要求应该是一致的.
| 归档时间: |
|
| 查看次数: |
4933 次 |
| 最近记录: |