- 如何理解Bob大叔的TDD三条规则?
- 第一条和第三条讲的是只有和只要。只有Case False的情况下才能写Code。只要新写的Code使得Case通过了,就不要写任何新功能代码了。重构是可以的。
- 第二条是说只允许编写Case失败的代码。这一条操作起来有个疑惑。比如为写一个算法,先把写一个验证功能的Case,然后写代码。Case通过以后,想验证下特殊值情况,又写一个Case,结果Case也幸运的Pass了。这算不算违反了Bob大叔的TDD规则2呢? 经过咨询了James Grenning,这样做是可以的。第二条只允许编写失败Case是指对于未实现的新的功能。比如原计划写5个测试功能的Case,当你完成功能1和2开发和测试,那你就对未实现的功能3的写的测试case当然是fail的。但这不妨碍你继续写增加对功能1和2测试的验证case。
- You are not allowed to write any production code unless it is to make a failing unit test pass.
1
、除非为了使一个失败的unit test通过,否则不允许编写任何产品代码
- You are not allowed to write any more of a unit test than is sufficient to fail; and compilation failures are failures.
2
.在一个单元测试中只允许编写刚好能够导致失败的内容(编译错误也算失败)
- You are not allowed to write any more production code than is sufficient to pass the one failing unit test.
3
、只允许编写刚好能够使一个失败的unit test通过的产品代码