StrutsTestCase简化开发过程 - 编程入门网
@ 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() 方法
在编写 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 PatilSTC 模拟方式如何工作 ActionServlet 在 Struts 框架中是一个控制器 servlet。当容器得到请求时,会把请求 传递给 ActionServlet,由后者进行所有的请求处理。 STC 背后的基本想法是自行创建 ActionServle |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |