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

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

利用 Eclipse 进行单元测试

发布: 2008-6-23 16:07 | 作者: 不详 | 来源: 测试时代编辑整理 | 查看: 71次 | 进入软件测试论坛讨论

领测软件测试网


注,首要的是,使用 jMock 框架模拟了 ClassB 类。使用 RMock,没有一种实际方法从模拟对象中提取和使用代理,以便在测试 setUp() 方法中的其他位置使用该代理。使用 RMock,仅当调用 startVerification() 方法之后,才显示代理对象。本例中的优点是使用 jMock,因为在需要返回自我模拟对象的情况下,可以 获得设置其他模拟对象所需的信息。

反过来,需要注意的第二点是您不能使用 jMock 框架来模拟 Collaborator 类。原因是该类没有无参数构造函数。此外,在构造函数内有某种逻辑,这种逻辑将确定是否先获得实例。事实上,出于本次讨论的目的,ClassB 中的 wierdMethod() 方法必须返回 passed 才能使 Collaborator 对象被实例化。但是,另请注意,在默认情况下,方法总是返回 failed。测试成功明显需要模拟 ClassB

此外,不同于先前的示例,此场景中的类数组作为附加参数被包含到了 intercept() 方法中。对此不作严格要求,但是用它作为密钥可以快速识别在实例化 RMock 测试对象时使用的对象类。

运行新测试用例。这一次,您将看到成功的结果。图 7 将显示令人愉快的结果。


图 7. RMock 与 jMock 协作使场景 4 测试成功
RMock 与 jMock 协作使场景 4 测试成功

Collaborator 模拟对象已被正确设置,并且 mockClassB 对象将按预期执行。


快速查看测试工具差别

正如您已经在场景中看到的,jMock 和 RMock 都是用于测试 Java 代码的强大工具。但是,用于开发和测试的任何其他工具总是有限制。实际上,其他测试工具都是可用的,但是这些测试工具的运行情况都不如 RMock 和 jMock(在 Java 技术中)。个人经验告诉我 Microsoft® .NET 框架也附带了一些功能强大的工具(例如 TypeMock),但是那超出了本文(实际上还有平台)的范围。

表 1 显示了两个框架之间的一些不同之处以及随着时间的推移遇到的可能问题,尤其是在 Eclipse 环境中。


表 1. RMock 与 jMock 测试框架之间的不同之处

延伸阅读

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


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

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