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

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

基于mock对象和JUnit框架简化Spring Web组件单元测试

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

领测软件测试网

 

阅读提示:易测性(在框架中测试每个组件而不管其具体种类)是Spring框架所提倡的关键原则之一。本文集中探讨Spring的易测性特征—它能使得对Web组件进行单元测试就象测试普通Java对象(POJO)一样容易。 
        对于Java组件开发者来说,他们都盼望拥有一组能够对组件开发提供全面测试功能的好用的单元测试。一直以来,与测试独立的Java对象相比,测试传统型 J2EE Web组件是一项更为困难的任务,因为Web组件必须运行在某种服务器平台上并且它们还要与基于HTTP的Web交互细节相联系。

        易测性(在框架中测试每个组件而不管其具体种类)是Spring框架所提倡的关键原则之一。从这一角度看,Spring是对核心J2EE模型的一个重大改进—在以前情况下,在容器外进行组件测试是很难实现的,而且即使是容器内测试也往往要求复杂的安装过程。

        本文正是想集中探讨Spring的易测性特征—它能使得对Web组件进行单元测试就象测试普通Java对象(POJO)一样容易。

一、Spring Mock类简介

        Mock对象是一个术语,原来主要流行于eXtreme程序员和JUnit小组中。在单元测试上下文中,一个mock对象是指这样的一个对象——它 能够用一些“虚构的占位符”功能来“模拟”实现一些对象接口。在测试过程中,这些虚构的占位符对象可用简单方式来模仿对于一个组件的期望的行为和结果,从 而让你专注于组件本身的彻底测试而不用担心其它依赖性问题。

        Spring从J2EE的Web端为每个关键接口提供了一个mock实现:

        MockHttpServletRequest—几乎每个单元测试中都要使用这个类,它是J2EE Web应用程序最常用的接口HttpServletRequest的mock实现。

        MockHttpServletResponse—此对象用于HttpServletResponse接口的mock实现。

        MockHttpSession—这是另外一个经常使用的mock对象(后文将讨论此类在会话绑定处理中的应用)。

        DelegatingServletInputStream—这个对象用于ServletInputStream接口的mock实现。

        DelegatingServletOutputStream—这个对象将代理ServletOutputStream实现。在需要拦截和分析写向一个输出流的内容时,你可以使用它。

        总之,在实现你自己的测试控制器时,上面这些对象是最为有用的。然而,Spring也提供了下列相应于其它不太常用的组件的mock实现(如果你是一个底层API开发者,那么你可能会找到其各自的相应用法):

        MockExpressionEvaluator—这个mock对象主要应用于你想开发并测试你自己的基于JSTL的标签库时。

       

延伸阅读

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

TAG: junit Junit JUnit JUNIT Mock MOCK spring Spring web Web WEB 组件 mock

21/212>

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

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