在进行 TDD 时,我担心测试的“诚实”。TDD 是
- 写红色测试
- 编写足够的代码使其变绿
- 重构,让测试变绿
到现在为止还挺好。现在这里是一个应用上述原理的例子,这种例子在教程和现实生活中已经遇到过:
我想检查当前用户电子邮件是否显示在我的 web 应用程序的默认页面上。
- 编写一个红色测试:“example@user.com”显示在 default_page.html 中
- 编写足够的代码使其变为绿色:在 default_page.html 中硬编码“example@user.com”
- 通过实现 get_current_user()、其他一些层中的一些其他代码等进行重构,让测试变为绿色。
我对第 2 步感到“震惊”。这里出了点问题:即使没有任何实际工作,测试也是绿色的。这里有一种测试气味,这意味着也许在某些时候有人可以在不破坏测试套件的情况下破坏生产代码。
我在这里想念什么?