我知道在编写失败的单元测试之前我可能不会编写生产代码,所以我可以告诉我的经理我不能编写UI吗?

ivo*_*ivo 2 tdd code-coverage

我一直在使用TDD进行服务器端开发.我不确定将所有生产代码包含在单元测试中的好处是否超过了在重构上花费的时间超过所需时间4倍的缺点.

但是当我开发UI代码时,我根本无法应用TDD.对于那里的所有原教旨主义者来说,TDD的第一定律规定"在编写失败的单元测试之前,你可能不会编写生产代码".但是,如果您正在开发UI,这怎么可能呢?

(可以使用像Selenium这样的验收测试框架,但这不算数,因为您不直接与源代码交互.)

那么,我可以告诉我的经理,由于新的> 90%代码覆盖率策略,我无法编写用户界面代码吗?

Yis*_*hai 5

如果您发现编写TDD会导致您花费4倍的时间进行重构,那么您需要编写更好,更独立的测试,并且确实让测试按照预期推动设计.当你在没有测试的情况下进行重构时,你也没有计算你在调试器中花费的时间,更不用说其他人花在你重构时引入的bug上的时间.

无论如何,这里有一些关于TDD对UI开发的意义的一些好建议.将转化为代码覆盖的程度在很大程度上取决于UI框架.

绝对不要告诉你的经理你不能这样做,他可能只会替换你的人.