- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单元测试(testivus教条的路径)
Testivus之路
少一些单元测试教条
多一些单元测试信条
Alberto Savoia
Jojo Shi翻译
如果你写代码,请写测试
学生问:
“什么时候我可以成为一个经理?”
大师回答:
“当你停止写测试的时候。”
学生赶紧去写测试。
留下一些打滑的痕迹。
学生问大师程序员:
“什么时候我可以停止写测试?”
大师回答:
“当你停止写代码的时候”
学生问:
“什么时候我可以停止写代码?”
大师回答:
“当你成为一个经理的时候。”
如果代码值得编写,那么就值得拥有测试
不要被单元测试的教条所捆绑
教条说:
“做这个。
只做这个。
只用这种方法来做。
因为我叫你做,你就做。”
教条是不灵活的。
测试需要灵活。
教条扼杀创造性。
测试需要创造性。
拥抱单元测试的信条
信条说:
“做好事,好事就会发生。
用你所知道的方法来做。
用你喜欢的方法来做。
信条是灵活的。
测试需要灵活。
信条依靠创造性。
测试需要创造性。
统一考虑代码和测试
当你写代码的时候,考虑测试。
当你些测试的时候,考虑代码。
当你统一考虑测试和代码的时候,
测试很简单,代码很美丽。
测试比单元更重要
其它大师程序员跳出来开始争辩。
“对不起,我问了这个问题。”学生说。
那个晚上后来他接到了一个更伟大的程序员大师的字条。字条上说:
“那个伟大的程序员大师Flying Feathers的回答不是一个优秀的指导。
遵守它,大部分时间你都没法做好。
但你不需要被任何教条捆绑。
就写你需要的测试。”
学生睡得很好。
其它大师继续争论到漫漫长夜。
学生问伟大的程序员大师Flying Feathers:
“是什么使一个测试称为单元测试。”
这个伟大的程序员大师回答:
“如果它跟数据库对话,它不是一个单元测试。
如果它通过网络通讯,它不是一个单元测试。
如果它接触文件系统,它不是一个单元测试。
如果它不能在同一时间和其它任何单元测试一起运行,它不是一个单元测试。
如果你有一些特殊的环境来运行它,他不是一个单元测试。”
测试的最好时间是当你的代码还新鲜的时候
你的代码就像粘土。
新鲜的时候,它很软,可塑。
随着时间过去,他变得坚硬,脆弱。
如果你在代码新鲜的时候写测试,
容易改变,测试很简单。
代码和测试都变得更强。
测试不运行很浪费
经常运行你的测试。
不要让他们变馊。
当他们通过的时候值得高兴。
当他们失败的时候也值得高兴。
今天不完美的测试比某天完美的测试更好
完美是好的敌人。
不要等待最好,而要做得更好。
不要等待更好,要把它做好。
写你今天能写的测试
一个丑陋的测试比没有测试好
当你的代码很丑陋的时候,你的测试可能也很丑陋。
你不喜欢写丑陋的测试。
但丑陋的测试比没有测试好。
不要让丑陋的测试阻止你写测试,
让丑陋的测试阻止你写更丑陋的测试。
有时候,测试证明方法是对的
学生迷惑了,出去喝啤酒。
在一个水池边,他看到了最伟大的程序员大师一边喝啤酒,一边吃布法罗辣鸡翅。
“最伟大的程序员大师,”学生说,“我以为你不喝酒,你不是素食者么?”
大师笑着回答:
“有时候,啤酒能够治疗你的口渴,
而鸡翅能治疗你的饥饿啊。”
学生不再困惑了。
学生问两个程序员大师:
“我不能不通过Mocking和违反封装来测试这段代码,我该怎么办?”
一个程序员大师回答:
“Mocking不好,你不应该违反封装。
重写这段代码来使你正确的测试它。”
另一个程序员大师回答:
“Mocking好,测试胜过封装。”
只有傻瓜不用工具
农夫不用犁不是一个好农夫。
会计不用算盘不是一个好会计。
有些任务最好用手来做。
有些任务最好用工具。
当你用工具可以做的更好的时候,用手不够高贵。
当你不需要用手的时候,用手不够聪明。
好的测试会失败
学生走到大师程序员跟前说:
“我所有的测试一直都通过。难道我不应该晋升么?”
大师打了学生一个耳光,说:
“如果你的测试一直是通过的,那么你需要些更好的测试。”
学生摸着红红的脸颊到HR那里告状。
但那是另外一个故事了。
总结:Testivus之路
如果你写代码,请写测试
不要被单元测试的教条所捆绑
拥抱单元测试的信条
统一考虑代码和测试
测试比单元更重要
测试的最好时间是当你的代码还新鲜的时候
测试不运行很浪费
今天不完美的测试比某天完美的测试更好
一个丑陋的测试比没有测试好
有时候,测试证明方法是对的
只有傻瓜不用工具
好的测试会失败
附录
/downloads/TheWayOfTestivus.pdf
文档评论(0)