版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Struts面试题:如何测试Action问题:Struts面试题:如何测试Action回答:测试StrutsAction相对比较困难,因为Struts是运行在Web服务器中,因此要测试StrutsAction就必须发布应用程序然后才能测试,换言之,我们必须要有Web容器的支持.我们想象一下,对于一个拥有上千个JSPpage和数百甚至数千JavaClasses的大规模应用程序,要把他们发布到诸如Weblogic之类的应用服务器再测试,需要多少的时间和硬件资源所以这种模式的测试是非常费时费力的.所以,如果有一种办法能够不用发布应用程序,不需要Web服务器就能象测试普通JavaClass一样测试St
2、rutsAction,那就能极大地加强Struts的可测试性能,使应用程序测试更为容易,简单快速.现在这个工具来了,这就是StrutsTestCase.StrutsTestCase是一个开源工具,可以到下载.目前最新版本是2.1.3,如果你使用Servlet2.3就下载StrutsTestCase213-2.3.jar,使用Servlet2.4的就下载StrutsTestCase213-2.4.jar.另外StrutsTestCase本身就是从JUnit继承的,所以你还需要下载JUnit3.8.1.下面就以一个简单的LogonAction为例测试一下:publicclassLogonActio
3、nextendsActionpublicActionForwardexecute(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse)DynaValidatorFormdynaForm(DynaValidatorForm)form;Stringname=(String)dynaForm.get(username);Stringpassword=(String)dynaForm.get(password);if(name.equals(wangxq)password.e
4、quals(wangxq)request.setAttribute(valid_user,form);returnmapping.findForward(admin);returnmapping.findForward(success);LogonAction的简单说明:从Logon的页面中输入用户名和密码,在LogonAction中作判断,并且作相应的跳转。对其的测试代码如下:publicclassLogonActionTestextendsMockStrutsTestCaseprotectedvoidsetUp()throwsExceptionsuper.setUp();setContex
5、tDirectory(newFile(WebRoot);/设置WEB-INF的上级目录,让程序可以找到struts-config.xml文件protectedvoidtearDown()throwsExceptionsuper.tearDown();publicvoidtestNoParameters()setRequestPathInfo(/logon);actionPerform();verifyInputForward();String口actionErrors=errors.required,errors.requiredverifyActionErrors(actionErrors)
6、;verifyInputForward();publicvoidtestOneParameters()setRequestPathInfo(/logon);addRequestParameter(username,wangxq);actionPerform();/校验Action是否转发到ActionMapping里的input属性verifyInputForward();String口actionErrors=errors.requiredverifyActionErrors(actionErrors);verifyInputForward();publicvoidtestSuccessAd
7、min()/设置Request的请求,说明该Request请求的是哪一个Action,或者说,请求的是哪一个.do文件。setRequestPathInfo(/logon);/将参数和其对应的值加入到request中,相当于是action对应的formbean传过来的值,即用户在登陆界面输入的值。addRequestParameter(username,wangxq);addRequestParameter(password,wangxq);/执行这个请求,即执行action中对应的execute方法。actionPerform();/验证forward的名字是否正确,即有没有跳转到预期的页面
8、。verifyForward(admin);/验证没有任何的ActionErrors。verifyNoActionErrors();publicvoidtestSuccessLogon()setRequestPathInfo(/logon);addRequestParameter(username,aaaaaa);addRequestParameter(password,bbbbbb);actionPerform();verifyForward(success);verifyNoActionErrors();补充说明其中的一些方法:verifyActionErrors/Messages校验Ac
9、tionActionServletcontroller是否发送了ActionError或ActionMessage.参数为ActionError/MessageKeyverifyNoActionErrors/Messages校验ActionActionServletcontroller没有发送ActionError或ActionMessageVerifyForward校验Action是否正确转发到指定的ActionForward.VerifyForwardPath校验Action是否正确转发到指定的URLverifyInputForward校验Action是否转发至UActionMapping
10、里的input属性其他的方法可以参考具体的文档说明。还有一点需要说明:关于Web.xml和Struts-Config.xml缺省情况下,StrutsTestCase认为你的Web.xml和struts-config.xml的路径分别是:/WEB-INF/web.xml和/WEB-INF/struts-config.xml1 .假如彳的web.xml/struts-config.xml的路径是d:/application/web/WEB-INF/web.xml(struts-config.xml)的话,就需要把d:/application/web力口到classpath.或者更简单的方法是setContextDirectory(newFile(web)这样就可以找到了。2 .假如彳的strutsconfig是strust-config-module.xml,那么必须调用setConfigFile()设置你的strutsconfig文件深入使用:input=/handle.domethod=setUpname=handleFormtype=handleActionscope=sessionparameter=methodvalidate=true
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 全等三角形判定二(SSS)(提高)巩固练习
- 湖北商贸学院《抽样技术》2023-2024学年第一学期期末试卷
- 拍七令游戏课件
- 现代文秘职业生涯规划
- 广东省湛江市开发区2023-2024学年四年级下学期期末义务教育阶段教学质量监测语文试卷
- 答谢中书书课件
- 湖北科技学院《中医护理学》2021-2022学年第一学期期末试卷
- 湖北科技学院《医学免疫学A》2021-2022学年第一学期期末试卷
- 湖北科技学院《物理药剂学》2022-2023学年第一学期期末试卷
- 《墙体材料上海交大》课件
- 三方委托收款开票合同范本
- 燃气公司财务的管理制度
- 山西省灵丘县山西省刁泉银铜矿业有限公司银、铜矿资源开发利用、地质环境保护与土地复垦方案附件
- 2021年全国普通高等学校体育单招真题英语(含答案解析)
- 物业项目全生命周期个关键节点清单
- 公司装修许可证
- CQI-12涂装系统评审
- 信用管理师(三级)理论考试题库(300题)
- 弯沉值计算表格-你懂得
- 2023全球电动汽车展望(英文)-国际能源署
- 吸收光谱法的浅析
评论
0/150
提交评论