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

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

基于Mock对象和AOP技术进行Struts应用程序单元测试开发

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

领测软件测试网

一、引言

        测试驱动开发在减少开发努力的同时也改进了软件的开发质量单元测试,作为一整套测试策略的基础,必须是全面的,且要求易于建立和执行迅速。然而,对执行环境和被测试类外部代码的依赖性使我们实现这些目标变得更为复杂。例如,把应用程序发布到容器将显著地延长代码和测试的周期;而对其它类的依赖性通常也会导致测试的建立更加复杂和测试运行速度更为缓慢。

        集成两个流行的测试框架(StrutsTestCase和EasyMock)来单元测试Struts应用程序将会更为容易地建立测试并加快测试速度。然而,这两个框架之间尚存在一些“隔阂”,从而很难把它们理想地集成到一起。在本文中,我将通过分析两种方案(一个面向对象的方案和一个面向方面的方案)来探讨这个问题。同时,我还将展示面向方面编程(AOP)是如何通过简化一些看起来很困难的问题的解决方案而进一步补充面向对象编程(OOP)的。

二、集成需要

        一个典型的Struts应用程序既能够展示也其所使用的执行环境也会体现出类之间的依赖性问题;这是因为Struts行为(Action)是在一个servlet容器内执行的,并且典型情况下会调用其它的类来处理请求。模拟对象测试方法有助于消除其中不必要的依赖性。借助于继承自基本JUnit测试集的MockStrutsTestCase类,StrutsTestCase测试框架提供了对servlet容器的一种模拟实现。这显然方便了容器外测试,因而也相应地加快了单元测试周期。另一方面,另一个测试框架—EasyMock—进一步便利了对协作类的动态模拟(Mock)。这个框架中所提供的模拟能够用更简单的实现来代替真正的类,并且添加了校验逻辑以支持单元测试。

        非常清楚,把这两个框架结合在一起是非常有益的—Struts应用程序便可以在非常真实的隔离环境下进行测试。理想情况下,你需要使用下列步骤来实现这样的一个单元测试:

1.建立MockStrutsTestCase以便模拟servlet容器。

2.借助于EasyMock来模拟行为所依赖的类。

3.设置模拟的期望值。

延伸阅读

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

TAG: aop AOP Mock MOCK mock struts Struts 单元 应用程序

21/212>

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

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