在编写代码之前编写测试

Kir*_*ins 1 testing tdd bdd unit-testing

据我所知,TDD和BDD周期类似于:

  1. 首先编写测试
  2. 看他们失败了
  3. 写代码
  4. 通过测试
  5. 重复

问题是在你有任何代码之前如何编写测试?我应该创建某种类骨架或接口吗?或者我误解了什么?

Car*_*ter 6

你有它的本质,但我会改变你描述的一部分.在编写代码之前不要编写测试 -在编写代码之前编写测试.然后 - 在编写任何更多测试之前 - 编写足够的代码以使测试通过.当它通过时,你会寻找改进代码的机会,并在保持测试通过的同时进行改进 - 然后你编写第二个测试.关键是,您在任何给定时间都专注于一小部分功能.你希望你的程序接下来要做什么?为此写一个测试,仅此而已.让测试通过.清理代码.你想要它做的下一件事是什么?迭代直到你快乐.

问题是,如果你在编写代码之前编写测试,那么你没有那么专注.这是一次一个测试.

  • 无论如何,@MikeNakis,当您想到系统需要的东西时,请记下它。但不要一次编写多个测试。该注释(注释列表)可以作为测试的来源,但在您准备好编写导致测试通过的代码之前,它不应该是测试。 (2认同)