快速业务通道

StrutsTestCase简化开发过程 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
@ page language="java" contentType="text/html; %> <META http-equiv="Content-Type" content="text/html; charset=ISO-8859- 1"> <TITLE>Success.jsp</TITLE> </HEAD> <BODY> <%     String userName = (String)session.getAttribute("userName"); %> Login Successful<br/> <P>Welcome: <%=userName%> .</P> </BODY> <HTML>

在这里,可从属性范围中读取 userName 属性,并用它来欢迎已经登录的用户。

使用模拟对象方式

模拟测试是对应用程序进行单元测试的流行方式。如果是初次接触模拟测试方式,想了解 更多的内容,那么请参阅参考资料。

StrutsTestCase简化开发过程(4)

时间:2011-04-26 IBM Sunil Patil

设置模拟方式

要使用模拟方式,必须对示例应用程序做少许修改。首先要从编写模拟测试开始:

把 strutstest-2.1.*.jar 和 junit3.8.1.jar 添加到 classpath。

把 WEB-INF 文件夹添加到 classpath。

创建 MockLoginTestAction 类,它扩展了 MockStrutsTestCase 类。

运行单元测试用例。

现在就完成了对环境的设置,可以开始编写单元测试用例了。

空的用户名或口令

首先,需要验证用户是否没有输入用户名或口令,然后向用户显示适当的错误信息,并将 用户重定向到登录页面。可以在 MockLoginTestAction 类中创建 testLoginActionFormError() 方法, 如清单 6 所示:

清单 6. testLoginActionFormError() 方法

public void testLoginActionFormError()throws Exception{     setRequestPathInfo("/login");     actionPerform();     String[] actionErrors =  {"username.required","password.required"};     verifyActionErrors(actionErrors);     verifyInputForward(); }

在编写 STC 测试用例时,要做的第一件事就是告诉 STC 要测试哪个 ActionMapping 类 ,在这里要测试 LoginAction,它被映射到 struts-config.xml 文件中的 "/login" 路径, 因此我们必须调用 setRequestPathInfo("/login")。默认情况下,STC 在 /WEB-INF/ 文件 夹中查找 struts-config.xml 文件。如果在 classpath 没有这个文件,就必须用 struts- config.xml 文件的完整路径调用 setConfigFile()。

现在可以执行测试用例了。首先要调用 actionPerform() 方法,把控制权传递给 Struts 框架,执行测试用例。一旦控制权从 actionPeform() 返回,就可以调用 verifyXXX() 方法 ,测试对程序的假设。在示例应用程序中,我们想测试一下,在没有用户名和口令的时候, 调用 LoginAction 映射是否会利用出错信息 ActionErrors(用于 username.required 和 password.required)将用户重定向到登录页面。verifyInputForward() 方法检查这个事务 的结果是否把用户重定向到动作映射的输入属性指定的页面,在这个例子中,该页面是 Login.jsp。

可以用 String 数组调用 verifyActionErrors(),该数组指出,作为这个事务的结果, 应当在请求范围中设置哪些 ActionErrors。我们想设置 username.required、 password.required 和 ActionErrors,所以创建了一个 String 数组来保存这些出错信息, 并把它们发送给 verifyActionErrors() 方法。

StrutsTestCase简化开发过程(5)

时间:2011-04-26 IBM Sunil Patil

STC 模拟方式如何工作

ActionServlet 在 Struts 框架中是一个控制器 servlet。当容器得到请求时,会把请求 传递给 ActionServlet,由后者进行所有的请求处理。

STC 背后的基本想法是自行创建 ActionServle

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号