您如何建议“修复”此类以便进行更好的测试?
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
并对其进行了隔离测试?
执行此操作的正确方法是什么?
答案 0 :(得分:1)
请考虑将ComplexA
,ComplexB
等分成自己的类。这样就解决了独立测试的问题。然后,您将面临将碎片收集成一个整体的问题。对于该问题,您可能更倾向于使用组合而不是继承。但任何一种方法都行得通。