您建议如何“修复”此类以进行更好的测试?
public class Config {
private final ComplexA complexA;
private final ComplexB complexB;
(...)
Config(String[] args) {
complexA = privateMethodCalculatesA(args);
complexB = privateMethodCalculatesB(args);
(...)
}
}
现在,如果用户使用 System.exit
插入不存在或错误的参数,则所有计算 complexA/B/...
的方法都会快速失败。这里的问题是 Config
与应该单独测试的方法混淆了。
尽管如此,不应公开暴露相同的方法,并且应缓存结果,因为计算可能会很昂贵。
只需击中子弹并声明所述方法静态保护
并单独测试它们?
执行此操作的正确方法是什么?
最佳答案
考虑将ComplexA
、ComplexB
等分离到它们自己的类中。这解决了独立测试问题。然后你就面临着将碎片收集成一个整体的问题。对于这个问题,您可能更喜欢组合而不是继承;但这两种方法都可能有效。
关于java - 具有多个私有(private)最终字段的测试 Config 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53673758/