我开始并热爱TDD,但是对红绿灯概念感到疑惑。理论上我理解确保在通过测试之前可以通过测试失败的重要性。然而,在实践中,我发现这种做法有些徒劳无功。红色绿灯测试的相关性
我觉得如果不实施我打算测试的代码,我不能正确编写失败或通过的测试。例如,如果我编写测试以显示DataProvider正在返回DataRow,则需要编写DAL逻辑以提供有意义的失败,比空方法更多的NullException或Null返回的失败,看起来似乎毫无意义,因为我觉得红灯应该表明我可以根据我测试的实际逻辑创建一个失败的测试。
换句话说,如果我只是返回null或false,我正在测试一个函数来测试我的失败是什么,真正的红色光的价值。但是,如果我已经实现了逻辑(这在某种程度上违背了测试的第一范式),我发现我仅仅是为了测试互斥概念(IsTrue代替IsFalse,或者IsNull代替IsNotNull)获得红灯而不是绿灯,然后将它们切换到相反以获得通行证。
我没有去理解这个概念,我真的提出这个问题,因为它是我注意到的,并且想知道如果我做错了什么。
编辑
我接受查理·马丁的答案,因为它为我工作最好的,这是不以任何方式暗示,有在其他的答案没有效力,所有这些都让我明白一个概念,我是显然没有适当地养护
准确无误。特别是对于更大的测试套件,它往往会发生的事情往往是你忘记添加测试用例。红色灯光显示出noop impl确保您的测试实际上正在运行。 – Ole 2009-01-01 15:52:02