具有多个私有最终字段的测试配置类



您建议如何"修复"此类以进行更好的测试?

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被应该单独测试的方法弄得一团糟。

尽管如此,同样的方法不应该公开,结果应该缓存,因为计算可能会很昂贵。

直接宣布上述方法static protected并单独测试?

这样做的正确方法是什么?

考虑将ComplexAComplexB等分离为各自的类。这就解决了独立测试的问题。然后你就面临着将这些碎片收集成一个整体的问题。对于这个问题,你可能更喜欢组合而不是继承;但任何一种方法都可能奏效。

相关内容

  • 没有找到相关文章

最新更新