在TDD中,测试是否应由实施被测功能的人员编写?

mar*_*tin 12 tdd unit-testing

我们运行一个项目,我们希望通过测试驱动开发来解决这个问题.我想到了启动项目时出现的一些问题.一个问题是:谁应该为功能编写单元测试?单元测试应该由功能实现的程序员编写吗?或者单元测试应该由另一个程序员编写,程序员定义了一个方法应该做什么,并且特征实现程序员在测试运行之前实现该方法?
如果我以正确的方式理解TDD的概念,那么特征实现程序员必须自己编写测试,因为TDD是具有小型迭代的过程.那么让另一个程序员编写的测试太复杂了吗?
你打算说什么?TDD中的测试应该由程序员自己编写,还是应该由其他程序员编写描述方法可以执行的测试?

Grz*_*nio 14

在TDD中,开发人员首先编写失败的单元测试,然后修复生产代码以使测试通过.我们的想法是更改是以非常小的步骤进行的 - 所以你编写一个调用不存在的方法的测试,然后通过添加一个空方法修复测试,然后在测试中添加一些关于方法的断言所以它再次失败,然后你实现方法的第一个切割,等等.因为这些步骤太小,让一个单独的人写测试是不切实际的.另一方面,我建议配对,以便您获得一些额外的眼球,确保代码有意义.

我认为有可能让另一个人/团队/甚至是客户(当你使用像Fitness这样的工具时)来编写验收测试,从而在更高的层次上测试整个功能.

  • 在我看来,乒乓球的优势在于开发人员都参与了实现代码的过程.有时很难让司机不能接管,而且乘客也不能入睡. (2认同)