基于mock对象的SpringWeb组件单元测试

基于mock对象的SpringWeb组件单元测试

ID:41694772

大小:348.34 KB

页数:17页

时间:2019-08-30

基于mock对象的SpringWeb组件单元测试_第1页
基于mock对象的SpringWeb组件单元测试_第2页
基于mock对象的SpringWeb组件单元测试_第3页
基于mock对象的SpringWeb组件单元测试_第4页
基于mock对象的SpringWeb组件单元测试_第5页
资源描述:

《基于mock对象的SpringWeb组件单元测试》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、一、基于mock对象的SpringWeb组件单元测试技术1、易测性(在框架中测试每个组件而不管其具体种类)是Spring框架所提倡的关键原则之一(1)测试传统型J2EEWeb组件是一项更为困难的任务一直以来,与测试独立的Java对象相比,测试传统型J2EEWeb组件是一项更为困难的任务,因为Web组件必须运行在某种服务器平台上并且它们还要与基于HTTP的Web交互细节相联系。我们前面所介绍的StrutsTestCase技术就是帮助我们解决对依赖服务器容器的各种组件的测试平台。易测性(在框架中测试每个组件而不管其具体种类)是Spring框

2、架所提倡的关键原则之一。从这一角度看,Spring是对核心J2EE模型的一个重大改进一在以前情况下,在容器外进行组件测试是很难实现的,而且即使是容器内测试也往往要求复杂的安装过程。(2)SpringController或者SimpleFormController的单元测试2、SpringMock技术(1)什么是Mock技术Mock对象是一个术语,原来主要流行于eXtreme程序员和JUnit小组中。在单元测试上下文中,一个mock对彖是指这样的一个对象一一它能够用一些“虚构的占位符”功能來“模拟”实现一些对彖接口。在测试过程中,这些虚构

3、的占位符对象可用简单方式来模仿对于一个组件的期望的行为和结果,从而让你专注于组件本身的彻底测试而不用担心其它依赖性问题。我们前面所介绍的StrutsTestCase技术中就提供了MockStrutsTestCase来帮助我们对Struts的MVC系统进行Mock方式的测试。(2)Spring从J2EE的Web端为每个关键接口提供了一个mock实现•MockHttpServletRequest:几乎每个单元测试中都要使用这个类,它是J2EEWeb应用程序最常用的接口HttpServlelRequest的mock实现。•MockHttpSe

4、rvletResponse:此对象用于HllpSendclRcsponse接口的mock实现。•MockHttpSession:这是另外一个经常使用的mock对彖(后文将讨论此类在会话绑定处理中的应用)。•DelegatingServletInputStream:这个对象用于ServletlnputStream接口的mock实现。•DelegatingServletOutputStream:这个对象将代理ServletOutputStream实现。在需要拦截和分析写向一个输出流的内容时,我们可以使用它。总之,在实现你自己的测试控制器时,

5、上面这些对象是最为有用的。然而,Spring也提供了下列相应于其它不太常用的组件的mock实现(如果我们是一个底层API开发者,那么我们可能会找到其各自的相应用法)。3、Spring中的其它的Mock技术的API(1)MockFilterConfig这是FillerConfig接口的一个mock实现。(2)MockPageContext这是JSPPageContext接U的一个mock实现。你会发现这个对象的使用有利于测试预编译的JSP。(3)MockRequestDispatcherRequestDispatcher接口的一个mock

6、实现,你主要在其它mock对象内使用它。(4)MockServletConfig这是ServletConfig接口的一个mock实现。在单元测试某种Web组件(例如Struts框架所提供的Web组件)时,要求你设置由MockServIetContext所实现的ServletConfig和ServletContext接口。4、如何使用这些mock对象(1)MockHttpServletRequest类HttpServletRequest是一个持有描述HTTP参数的固定值的组件,而正是这些参数驱动Web组件的功能。MockHttpServl

7、etRequest,作为HllpServletRequesl接口的一个实现,允许我们设置这些不可改变的参数。在典型的Web组件测试情形下,我们可以实例化这个对彖并按如下方式设置其中的任何参数。(2)指定表单方法和表单行为MockHtlpServletRequestrequest=newMockHtlpServletRequesl("GETn,"/SpringWeb/hello.do");request.addParameter("nameOne",valueOne);request.addParameter(',nameTwon,val

8、uetwo);注意:对上面的MockHttpServletRequestrequest=newMockHttpServletRequest("GET'"/SpringWeb/hello.do");也可以改

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。