java - 具有多个私有(private)最终字段的测试 Config 类

标签 java unit-testing design-patterns

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

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 与应该单独测试的方法混淆了。

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

只需击中子弹并声明所述方法静态保护并单独测试它们?

执行此操作的正确方法是什么?

最佳答案

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

关于java - 具有多个私有(private)最终字段的测试 Config 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53673758/

相关文章:

Java动态添加按钮作为数组

java - JScrollPane 不会进入带有 gridbag 的 JPanel

spring - 增加 JdbcTemplate 模拟的代码覆盖率

ios - 核心数据设计模式

c# - 如何定义和执行约束分层实体的复杂规则

design-patterns - OOPS(设计模式)

java - 如何在 WebDriver(FirefoxDriver) 测试中关闭或禁用基本身份验证弹出窗口

java - 列表和 ImmutableList 的问题

javascript - 寻找与 Nashorn 的 jjs 解释器一起使用的 javascript 单元测试套件

c# - 单元测试 GetManifestResourceStream