我相信我已经知道了答案,但我并不是百分百肯定,所以只是一个简单的问题:红/绿测试究竟意味着什么?
我将其理解为"首先编写测试,以便它们全部失败(=全红色),然后编写代码并观察每个测试如何变为绿色,当所有测试都变为绿色时,您就可以了".
我在斯科特的混合MVC讲话中听到了这个,所以我不知道这是一个"官方"术语,还是他刚刚完成的.(编辑:斯科特实际上也解释了它从55:00开始解释,并且他很好地回答了为什么他相信它)
它确实涉及TDD或测试驱动开发,但它适用于每个测试.首先编写测试,然后编写代码以通过测试.首先编写所有测试是错误的.TDD是一种渐进式开发方法.
基本思想是在测试失败(RED)之前没有编写代码.如果测试失败,则编写代码以通过测试(GREEN).现在你准备好编写下一个测试 - 也就是说,没有新测试,直到所有测试都是绿色的.或重构,正如@Brian指出的那样.
"Red-Green-Refactor"是TDD的口头禅.
http://en.wikipedia.org/wiki/Test-driven_development
在我下午放纵办公室糖果盘后,当我正在吃糖时,我有时会在编码时喊出这些话.在通过喊"红色"来编写失败的测试用例后奖励自己时,更容易预先编写测试.并吃一块巧克力.:)