我与我的整个职业生涯中的测试/ tdd有过爱/恨的关系。最近,我已经开始享受编写测试,通过放弃断言陈述。这对我来说在世界上都有所不同。原因如下:与TDD苦苦挣扎的人如何看待断言?
当我没有写任何测试时,速度接近于原来的位置。
我不要浪费时间试图使断言(FOO,2)或!断言(富,无)逻辑在每次测试结束
我只是把foo.inspect在年底测试,运行它,并继续工作
下一个程序员仍然有一个很棒的小测试,显示我的意图,并知道此代码是在一个点工作或它不会存在。
当测试失败时没有打破构建,因为没有断言测试永远不会失败。
测试不是每周7天每天24小时运行一次又一次地抓到一些东西。他们在那里,当你想调试一些代码,并留下非常漂亮的笔记给下一个程序员(也许你)
随着岁月的流逝和测试中断,没有技术债务可以支付。测试总是在那里作为代码的考古遗迹,在某个时间点向控制台提供一些有用的信息。
我的问题是,这是否像一个已知的测试风格?因为我刚发现它不是必要的。但TDD的人使用这个系统吗?
当测试失败时没有打破构建,因为没有断言测试永远不会失败。在这种情况下测试点是什么?如果新的开发人员会做出改变,并且想要运行测试来检查没有任何事情发生 - 他总能得到绿色测试。 – Fabio
“测试失败时不会破坏构建”-imo这是测试的好处之一,我们有信心进行重构,并且测试告诉我们是否已经无意中破坏了任何东西。同样为了明确意图,有一个断言陈述对下一个人(甚至当我回来测试时)是非常有帮助的。有了断言,就不那么需要去调试了,我发现效率低得多。 – gezzahead
对,但我的观点是那些断言花费宝贵的时间来思考和创作。没有他们,我可以通过我的测试飞行。几个月后他们最终只是技术性债务。我同意这是一种不同的思考方式,你放弃了“一切都是绿色”的感觉。但男孩我更喜欢它。 –