Unit testing 什么时候创建单元测试?

Unit testing 什么时候创建单元测试?,unit-testing,tdd,Unit Testing,Tdd,在写特写之前? 在写了一篇专题文章之后? 在达到里程碑之前写了几个特性之后 我的开发人员认为,他们在第一个里程碑中排名第三,因为他们会在最初的开发过程中进行重构和优化,并且他们创建的单元测试在重构代码后可能无效。通常,单元测试指的是对一小段代码进行特定测试。至少在我的经验中,最低粒度应该是一个函数,但是您可以对该函数进行多个单元测试,以在该函数中使用不同的输入参数和路径 在这种背景下,在详细设计阶段,甚至在实施开始之前,都会明确定义功能。因此,在编写完函数后立即编写单元测试是有意义的 进行重构时

在写特写之前? 在写了一篇专题文章之后? 在达到里程碑之前写了几个特性之后


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

通常,单元测试指的是对一小段代码进行特定测试。至少在我的经验中,最低粒度应该是一个函数,但是您可以对该函数进行多个单元测试,以在该函数中使用不同的输入参数和路径

在这种背景下,在详细设计阶段,甚至在实施开始之前,都会明确定义功能。因此,在编写完函数后立即编写单元测试是有意义的

进行重构时,会出现两种情况:

  • 重构函数的内部:单元测试不太可能 受到影响
  • 在设计级别重构:这表明 设计有一些缺陷,但一个好的设计团队将确保这一点 重新设计是最小的。在这种情况下,部分代码必须重构 因此,单元测试也必须重构。旧单元测试 代码可以部分重用
  • 无论哪种方式,最好在实现的同时进行单元测试。问题在实施周期的早期就被发现了。另一个想法:是什么触发了重构?可能是糟糕的设计。在某些情况下,您可能会发现在进行单元测试时需要重构。归根结底,单元测试是为了帮助开发人员,让他们对自己的代码充满信心。这不应被视为安抚项目经理的多余努力。

    既然您添加了标签,这意味着您正在实践测试驱动开发。在这种情况下,在编写任何代码之前,首先编写单元测试

    有了需求,并且知道要做什么,首先编写单元测试是相当简单的。当然,一开始编译会失败,但这与中断的单元测试的处理方式相同

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


    那是胡说八道。在没有测试(单元、集成等)的情况下,重构代码是不可能的。否则,您将如何验证代码是否在做同样的事情?

    人们可以(并且已经)就测试方法争论数小时。这个问题可能不适合你。你把这个问题贴上了TDD标签,这意味着先写测试。@metacubed胡说八道。它很好地定义了如何在TDD中进行测试。请仔细阅读我的评论。我说的是测试方法。鉴于问题的实际内容,[tdd]标签似乎用词不当。它询问编写单元测试的最佳时间/时间表,同时考虑重构、优化等更改。