TDD测试应用入口点

时间:2014-04-10 05:00:40

标签: unit-testing tdd entry-point

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

但是,我正在努力研究如何测试应用程序的入口点。我指的是main(String... args)方法,这个类的唯一职责是从/向磁盘加载和保存属性文件等。

当我第一次做代码时,这似乎不是问题。我只是不会为那些方法/类编写测试。但是,当我必须在没有测试的情况下编写代码时,我应该如何遵循TDD流程?

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

1 个答案:

答案 0 :(得分:5)

在大多数情况下,您无法单元测试入口点,因为根据定义, unit 测试会单独测试单元< / strong>来自其依赖项。

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

我个人的规则是,Humble Executable不能包含任何逻辑(只有合成),我用Cyclomatic Complexity来衡量它;如果Humble Executable的Cyclomatic Complexity是1,那么可以不测试它。

但是,虽然您无法单位测试入口点,但仍然可以使用Outside-In TDD来驱动合成,但您通常仍需要更换一些外部服务Test Doubles