我的测试生活感悟2 - Art Of Unit Testing

简介:
今天把《Art Of Unit Testing》的前四个章节读完了,作者以自己的亲身经历,使用简洁清晰的语言,为我们展现了单元测试的艺术。
  1. 怎么定义一个好的测试案例呢?好的测试案例应该是在N年后还能运行良好并易于维护的。
  2. TOOD - Testabled Object-Oriended Design。作者也提到了这个颇有争议的问题,许多人认为,增加代码的可测性的同时,会使得代码变得更加丑陋。而作者不认为是这样,作者认为这样的修改 是另外一种面向对象,同样的也是优美的,这就是TOOD。
  3. 为了代码的可测性增加的一些代码,常常不希望编译到最后的产品中。可以有很多办法,比如用宏判断,如果使用的是.NE,还有一种办法,就是在相应的函数或类上面使用这个Attribute:[Conditional("DEBUG")]
  4. Action-Driven TestingResult-Driven Testing,两种不同的测试流派,一种检测行为本身,一种检查最后结果。不能说一定谁优谁劣,但作为单元测试,更多的应该是Action-Driven Testing,因为这样可以隔离一些其他外部的不稳定因素,当你的案例失败时,能够更加准备的定位问题所在。(事实上,集成测试就是Result-Driven Testing,一个很大的困惑就是集成测试案例失败了,通常是很难马上定位到原因的。)
  5. Stubs和Mocks的区别,这两个东西看起来几乎是一样的,事实上也确实很相似。但是,他们的区别也同样明显:Stubs不会导致案例失败,而Mocks会。换成我的理解就是,Stubs是一些假的东西,它能模拟一些我们想要的结果,而Mock呢,它就是一间谍(Test Spy),告诉我们被测代码做了些什么,于是,我们通过Mock对象来进行检查。
  6. One Mock Per Test,一个测试案例中,通常的模式是N个Stub对应1个Mock。如果一个测试案例有多于一个的Mock对象,说明你的案例感情不够专一。而一个测试案例,是可以有多个Stub对象的,他们共同协作模拟一些特定的虚拟场景,然后通过Mock对象,验证我们的被测对象是否对此做出了反应。

如果您觉得有用,请您告诉我,谢谢!
 
 
本文转自CoderZh博客园博客,原文链接: http://www.cnblogs.com/coderzh/archive/2009/09/07/MyTestingThink2.html,如需转载请自行联系原作者
相关文章
|
5月前
|
监控 前端开发 JavaScript
如何测试前端代码? 知道 BDD, TDD, Unit Test 么? 知道怎么测试你的前端工程么(mocha, sinon, jasmin, qUnit..)?
如何测试前端代码? 知道 BDD, TDD, Unit Test 么? 知道怎么测试你的前端工程么(mocha, sinon, jasmin, qUnit..)?
74 0
|
5月前
|
监控 前端开发 JavaScript
如何测试前端代码? 知道 BDD, TDD, Unit Test 么? 知道怎么测试你的前端工程么(mocha, sinon, jasmin, qUnit..)?
如何测试前端代码? 知道 BDD, TDD, Unit Test 么? 知道怎么测试你的前端工程么(mocha, sinon, jasmin, qUnit..)?
40 0
常见模糊测试-Fuzz Testing
模糊测试是一种测试方法,即构造一系列无规则的坏数据插入应用程序,判断其是否出现异常,并发现其潜在的bug
138 1
|
测试技术
软件测试面试题:解释如何在JMeter中执行尖峰测试(Spike testing)?
软件测试面试题:解释如何在JMeter中执行尖峰测试(Spike testing)?
183 0
|
Java 测试技术 Apache
ABAP和Java的单元测试Unit Test
ABAP和Java的单元测试Unit Test
ABAP和Java的单元测试Unit Test
|
人工智能 测试技术 Python
书籍:ASTQB-BCS移动测试基础指南 Mobile Testing An ASTQB-BCS Foundation Guide - 2018.pdf
简介 移动测试是测试移动软件的功能,可用性和一致性的过程。 与标准软件测试类似,高效且有效的移动测试需要在软件测试人员通常需要的技能之上提供额外的技能。 有了这个必不可少的指南,符合ASTQB认证的移动测试人员课程大纲,您将获得开始成为熟练的移动测试人员所需的理解和技能。
|
Web App开发 人工智能 安全
书籍:Python渗透测试实战 Practical Security Automation and Testing(python)- 2019.pdf
简介 实用的安全自动化和测试:使用DevOps和DevSecOps自动化基础架构安全性的一站式指南 主要特点 保护和自动化保护Web,移动或云服务的技术 使用Python,C ++,Java和JavaScript自动执行安全代码检查 将安全测试与fuzz,BDD,Selenium和Robot Framework等自动化框架集成 安全自动化是软件安全评估任务的自动处理。

热门文章

最新文章