【问题标题】:TDD testing application entry pointsTDD 测试应用程序入口点
【发布时间】:2014-04-10 05:00:39
【问题描述】:

我是 TDD 的新手,到目前为止非常喜欢它(尽管这是一个调整过程)。

但是,我正在努力解决如何测试应用程序的入口点。我的意思是main(String... args) 方法,它的唯一职责是从磁盘加载和保存属性文件等。

当我首先编写代码时,这似乎不是问题。我只是不会为这些方法/类编写测试。但是,当我必须编写没有测试的代码时,我应该如何遵循 TDD 流程?

换句话说,何时/如何编写入口点适合 TDD 开发过程?

【问题讨论】:

    标签: unit-testing tdd entry-point


    【解决方案1】:

    在大多数情况下,您无法单元测试入口点,因为根据定义,单元测试会单独测试单元 从它的依赖项中。

    除了一些微不足道的边缘情况外,应用程序的入口点是Composition Root - 即所有单元集成的地方。虽然您可以对入口点执行完整的系统测试,但通常您应该将其视为Humble Executable

    我个人的规则是 Humble Executable 不能包含任何逻辑(只有组合),我用Cyclomatic Complexity 来衡量它;如果 Humble Executable 的 Cyclomatic Complexity 为 1,不测试也没关系。

    然而,虽然你不能单元测试入口点,你仍然可以使用Outside-In TDD来驱动组合,尽管你通常仍然需要用@987654325替换一些外部服务@。

    【讨论】:

    • 感谢您的回答。我在首先编写代码时已经遵循了这些准则,当我切换到 TDD 时,我的问题就开始了。我已经编辑了我的问题,因为显然不清楚我的担忧是什么。请看一看。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-16
    • 1970-01-01
    • 1970-01-01
    • 2017-07-06
    • 1970-01-01
    • 2014-05-19
    • 1970-01-01
    相关资源
    最近更新 更多