追求代码质量: 测试 Struts 遗留的应用程序
2009-11-19 00:00:00 来源:WEB开发网成功的测试用例!
请求路径和参数映射好之后,编写测试用例就成了利用 MockStrutsTestCase API 设置相关口令值的问题,如清单 6 所示。在这个测试用例中,用户 Jane 的口令从 “admin” 改成了 “meme”。
清单 6. 一个验证口令修改成功的简单测试用例public void testExecute() throws Exception{
setRequestPathInfo("/changePasswordSubmit");
addRequestParameter("username","jane");
addRequestParameter("currentPassword","admin");
addRequestParameter("newPassword1","meme");
addRequestParameter("newPassword2","meme");
actionPerform();
verifyForward("success");
}
setRequestPathInfo() 方法配置路径以映射到 Action 类,addRequestParameter() 方法把来自 JSP 文件的参数名称映射到值。例如,在清单 6 中,username 参数映射到 “jane”。
还请注意清单 6 中的最后两行。actionPerform() 方法实际上让 Struts 去调用对应的 Action 类。如果这个方法没被调用,什么也不会发生。最后调用的方法 verifyForward() 是在 MockStrutsTestCase 类中找到的一个类似于断言的方法,它验证正确的转发。在 Struts 中,这是一个 String,通常映射到成功或失败状态。(请注意,清单 5 中的 XML 定义了 “success” 转发。)
用 DbUnit 进行的可重复的成功
这时,您可能希望工作完成 —— 毕竟已经编写了一个企图验证口令修改的测试。但是还缺乏更深的验证。确实,这个方便的框架调用了 Struts,但是代码依赖于数据库。如果希望能够不止一次地运行这个测试,比如在构建过程中,就需要让它可重复。
更多精彩
赞助商链接