• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

何时应该使用Mock对象?

发布: 2009-4-10 10:51 | 作者: 不详 | 来源: 测试时代采编 | 查看: 48次 | 进入软件测试论坛讨论

领测软件测试网 在“Ode To Code“网站上,K Scott Allen理性地分析了如何在单元测试中使用mock对象,并分享了他针对mock对象框架使用情况的想法。

        首先,Allen就人们对mock的常见误解,抛出了尖锐的意见: 
        我们知道,像与SMTP服务器通信的对象这样的资源,是很难在单元测试中使用的,有些人以为,只有在需要模拟出与这种资源之间的交互行为时,才用得上mock对象。他们是错的。 
        接下来,他引用了Colin Mackay讲述mock的论文,列出了一些常见的使用mock的场景: 
        真实对象有着不确定的行为 
        真实对象很难创建 
        真实对象的行为很难触发 
        真实对象响应缓慢 
        真实对象是用户界面 
        真实对象使用了回调机制 
        真实对象尚未存在 
        然后Allen便道出了文章的主旨。他认为,即使是上面列表中的内容也稍显肤浅,从更深刻、更普遍的意义而言,应该是”在你想把被测试的代码分离的时候,test doubles[mocks]就显出了作用。“简而言之,按照Allen的观点,用了mock对象,业务组件的测试代码就可以不依赖其它组件了;试举一例来看,A依赖于B,但A的单元测试只会因为A的问题而出现问题,跟B的状态无干。

        文章还讲到了在真正的测试驱动开发中,mock对象所扮演的角色: 
        "模拟角色,而非对象"的作者们写到,mock技术:

        "……在基于对象角色构建的系统中,可以识别出各种角色类型……尤其是,我们已经知道了Mock Object可以为我们带来的最大好处——曾被称为接口识别的概念"。 
        在文章的最后,Allen评价了一些mock对象框架,包括JMock、EasyMock、NUnit。他坚持认为,虽然这些框架很简单,但是想用得得心应手,还得花些心思。


更多相关的软件测试文章:使用 MOCK 对象进行单元测试的实例讲解、junit学习之-mock学习


延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

TAG: Mock MOCK mock 对象


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网