java - 具有多个私有最终字段的测试配置类
问题描述
您如何建议“修复”此类以进行更好的测试?
public class Config {
private final ComplexA complexA;
private final ComplexB complexB;
(...)
Config(String[] args) {
complexA = privateMethodCalculatesA(args);
complexB = privateMethodCalculatesB(args);
(...)
}
}
现在,complexA/B/...
如果用户使用System.exit
. 这里的问题是Config
,应该孤立地测试的方法变得混乱。
尽管如此,同样的方法不应该公开,结果应该被缓存,因为计算可能很昂贵。
只是击中子弹并声明所述方法static protected
并单独测试它们?
这样做的正确方法是什么?
解决方案
考虑将ComplexA
,ComplexB
等分离到它们自己的类中。这解决了独立测试问题。然后你面临着将碎片收集成一个整体的问题。对于该问题,您可能更喜欢组合而不是继承;但任何一种方法都可能奏效。
推荐阅读
- flutter - 我需要取消 Stream
(扑) - python - ValueError:islice() 的停止参数必须为 None 或整数:0 <= x <= sys.maxsize on topic coherence
- php - 获取具有年份和周数的星期几的日期
- c++ - C++ 编码的 DLL 返回 #VALUE!在 Excel 上
- elasticsearch - 在弹性搜索和 Kibana 中启用安全性时无法启动 logstash
- php - 在不同的国家显示不同的时间
- github - 如何避免 Github Actions 中的代码重复;yaml中有某种循环吗?
- reactjs - React Dnd useDrag 无法正常工作?
- javascript - 显示未定义变量的问题未显示
- javascript - 为什么组件没有在 react js 中呈现?