你什么时候创建单元测试?

时间:2014-08-06 06:41:14

标签: unit-testing tdd

在写一个功能之前? 写完一个功能后? 在达到里程碑之前写了几个功能?

我的开发人员认为他们在第一里程碑中排名第3,因为他们会在初始开发期间进行重构和优化,并且在重构代码后,他们创建的单元测试可能无效。

2 个答案:

答案 0 :(得分:1)

由于您添加了标记,这意味着您正在练习测试驱动开发。在这种情况下,在任何代码之前首先编写单元测试。

有了需求,知道该怎么做,首先编写单元测试相当简单。当然,最初编译将失败,但这与破坏的单元测试的处理方式相同。

  

我的开发人员认为他们在第一里程碑中排名第3,因为他们会在初始开发期间进行重构和优化,并且在重构代码后,他们创建的单元测试可能无效。

这是胡说八道。如果没有测试(单元,集成等),就不可能重构代码。你怎么验证代码是做同样的事情呢?

答案 1 :(得分:0)

通常,单元测试是指测试执行特定操作的一小段代码。至少根据我的经验,最低粒度将是一个函数,但是您可以对该函数进行多个单元测试,以通过该函数执行不同的输入参数和路径。

鉴于此背景,即使在实施开始之前,也会在详细设计阶段明确定义功能。因此,在完成函数编写后立即编写单元测试是有意义的。

当重构发生时,会出现两种情况:

  1. 重构函数的内部结构:单元测试不太可能 受到影响。
  2. 在设计层面重构:这表明详细 设计有一些缺陷,但一个优秀的设计团队将确保这一点 重新设计很少。在这种情况下,代码的一部分必须重构 因此单元测试也必须重构。旧单元测试 代码可以在部分中重复使用。
  3. 无论哪种方式,最好与实施一起进行单元测试。问题在实施周期的早期就被发现。另一个想法:什么触发重构?可能是糟糕的设计。在某些情况下,您可能会发现在进行单元测试时需要重构。最终,单元测试旨在帮助开发人员并对自己的代码充满信心。它不应被视为安抚项目经理的多余工作。