代码之家  ›  专栏  ›  技术社区  ›  Frankie

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

  •  0
  • Frankie  · 技术社区  · 7 年前

    您如何建议“修复”这个类以更好地进行测试?

    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 并单独测试它们?

    正确的方法是什么?

    1 回复  |  直到 7 年前
        1
  •  1
  •   jaco0646    7 年前

    考虑分离 ComplexA , ComplexB 等,进入自己的班级。这就解决了独立测试的问题。然后你就面临着把碎片收集成一个整体的问题。在这个问题上,你可能更喜欢组合而不是继承;但这两种方法都可能奏效。