何时应该使用Mock对象?
来源:互联网 发布:国际阿里云服务器购买 编辑:程序博客网 时间:2024/05/27 00:46
英文原文:http://www.infoq.com/news/2008/06/mocks-q-of-when。
中文原文:http://www.infoq.com/cn/news/2008/06/mocks-q-of-when。
在“Ode To Code“网站上,K Scott Allen理性地分析了如何在单元测试中使用mock对象,并分享了他针对mock对象框架使用情况的想法。
首先,Allen就人们对mock的常见误解,抛出了尖锐的意见:
我们知道,像与SMTP服务器通信的对象这样的资源,是很难在单元测试中使用的,有些人以为,只有在需要模拟出与这种资源之间的交互行为时,才用得上mock对象。他们是错的。接下来,他引用了Colin Mackay讲述mock的论文,列出了一些常见的使用mock的场景:
- 真实对象有着不确定的行为
- 真实对象很难创建
- 真实对象的行为很难触发
- 真实对象响应缓慢
- 真实对象是用户界面
- 真实对象使用了回调机制
- 真实对象尚未存在
文章还讲到了在真正的测试驱动开发中,mock对象所扮演的角色:
"模拟角色,而非对象"的作者们写到,mock技术:在文章的最后,Allen评价了一些mock对象框架,包括JMock、EasyMock、NUnit。他坚持认为,虽然这些框架很简单,但是想用得得心应手,还得花些心思。
"……在基于对象角色构建的系统中,可以识别出各种角色类型……尤其是,我们已经知道了Mock Object可以为我们带来的最大好处——曾被称为接口识别的概念"。
在TDD yahoo讨论组上,也发起了精彩的讨论,值得一读。
- 何时应该使用Mock对象?
- 应该如何使用Mock
- 何时应该使用struts?
- 何时应该使用极限编程
- 应该在何时使用assert?
- 何时不应该使用Python
- 使用mock对象一个举例
- 使用MOCK对象进行单元测试
- 使用 MOCK 对象进行单元测试
- 使用MOCK对象进行单元测试
- 何时基类应该使用虚析构
- AngularJS:何时应该使用Directive、Controller、Service?
- AngularJS:何时应该使用Directive、Controller、Service?
- AngularJS:何时应该使用Directive、Controller、Service?
- AngularJS:何时应该使用Directive、Controller、Service?
- AngularJS:何时应该使用Directive、Controller、Service?
- AngularJS:何时应该使用Directive、Controller、Service?
- AngularJS:何时应该使用Directive、Controller、Service?
- JQuery验证库jquery.validate 初探 验证插件
- 计算表达式的值
- C++实现的ORM映射工具类介绍(二)
- C++实现的ORM映射工具类介绍(三)
- 编写一个简单的assert宏
- 何时应该使用Mock对象?
- 在VC6.0下设置Unicode编译环境
- GridView的宽度超出Div的宽度的解决办法
- VSM模型
- Oracle数据库导入导出数据 .
- Objective-C 编程语言(1) 简介
- 汇编20111109
- STL容器学习总结
- 信号完整性与电源完整性分析基本概念