我相信我已经知道了答案,但我不是百分百肯定,所以只是一个简单的问题:红/绿测试究竟意味着什么?
我理解为“首先编写测试,以便它们全部失败(=全红色),然后编写代码并观察每个测试如何变为绿色,当所有测试都变为绿色时,你就可以了”。
我在Scott's MVC Talk at Mix听到了这个消息,所以我不知道这是一个“官方”术语,还是他刚刚完成的。 (编辑:斯科特实际上也解释了它从55:00开始解释,并且他很好地回答了为什么他相信它)
答案 0 :(得分:13)
它确实涉及TDD或测试驱动开发,但它适用于每个测试。首先编写测试,然后编写代码以通过测试。首先编写所有测试是错误的。 TDD是一种渐进式开发方法。
基本思想是在测试失败(RED)之前没有编写代码。如果测试失败,则编写代码以通过测试(GREEN)。现在您已准备好编写下一个测试 - 即,在所有测试都是绿色之前没有新的测试。或者重构,正如@Brian指出的那样。
答案 1 :(得分:9)
“Red-Green-Refactor”是TDD的口头禅。
http://en.wikipedia.org/wiki/Test-driven_development
当我在办公室糖果盘下午放纵后,我正在加油时,我有时会在编码时喊出这些话。当你通过喊“红色”来写一个失败的测试用例后你自己奖励自己时,更容易编写测试。并吃一块巧克力。 :)
答案 2 :(得分:3)
运行TDD GUI时,显示为红色,直到所有测试通过,然后切换为绿色。
这是测试优先发展概要的总结。
编写一些编译的框架代码,有足够的API可供测试。
编写测试 - 最初 - 将主要是失败。红色。
完成代码。测试通过。绿色
此时,你至少有一些有用的东西。但是,你所拥有的并不是很高质量。因此,您需要重构以提高整体质量。