StrutsTestCase简化开发过程 - 编程入门网
ase。因为在模拟和 Cactus 方式中可以 使用相同的测试用例,所以可以在这个类中复制 MockLoginActionTest 的内容。在选中的容 器中构建并部署这个应用程序。
最后,把 jdbc/ds1 配置成数据源。 StrutsTestCase简化开发过程(9)时间:2011-04-26 IBM Sunil PatilSTC Cactus 方法的工作原理 在使用 Cactus 测试应用程序的时候,必须把应用程序部署在 Web 容器中,还要在容器 外面用 JUnit 测试用例的形式运行 Cactus 测试用例。在运行 Cactus 单元测试时,它会为 类中的每个测试用例方法都创建并执行一个针对 URL 的HTTP 请求,URL 由 cactus.properties 文件中 cactus.contextURL 参数指定。 在示例应用程序的例子中,在执行 testDisableUser 时,会创建并执行以下请求:
这个请求会调用 ServletTestRedirector servlet(作为示例 Web 应用程序的一部分部 署)。在 ServletTestRedirector 中,Cactus 从 Cactus_TestClass 请求参数中查找测试 用例类的名称,并调用 Cactus_TestMethod 参数指定的方法。在执行这个方法之后,就会以 HTTP 响应的方式把结果返回 Cactus 测试类,这个类将执行一个外部容器。 此外,在 testDisabledUser() 方法中的 CactusStrutsTestCase 的容器内(in- container)版本得到控制时(在本文的示例中是 CactusLoginActionTest),STC 会调用 actionPerform() 方法,该方法将创建 ActionServlet、ServletContext 和 ServletConfig 对象的实例。STC 还在包装器中包装了当前的请求和响应。然后它调用 ActionServlet 的方 法 doPost(),该方法使用的参数是这些包装的 ServletRequest 和 ServletResponse 对象 。然后 Struts 会像平常一样处理请求。 通过使用 Cactus 方式,就可以调用 processRequest(true) 方法告诉 STC 验证转发 JSP,从而执行和测试转发的 JSP,以确保不会抛出任何编译和运行时错误。 一旦控制权从 actionPerform() 返回,就可以调用各种 verifyXXX() 方法检验假设是否 成立。 测试转发 JSP 的错误 修改 testVaidLogin() 方法,测试 Success.jsp,保证它没有编译时错误或运行时错误, 如清单 14 所示: 清单 14. testValidLogin() 方法
还要修改 Success.jsp,添加以下几行,让它抛出 RunTimeException 异常:
现在,当运行这个测试用例时,testValidLogin() 会创建并执行数据库查找,检查用户 帐户是否禁用,用户名和口令是否有效。如果测试失败,则表明在执行 Success.jsp 时遇到 了运行时错误。 Cactus 的优势与不足 使用 Cactus 当然有优势,但是困难也不少。从正面来说,它允许测试 JSP 页面 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |