• 软件测试技术
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘

字号: | 推荐给好友 上一篇 | 下一篇

追求代码质量: 测试 Struts 遗留的应用程序

发布: 2008-6-25 17:11 | 作者: 不详 | 来源: 领测软件测试网编辑整理 | 查看: 27次 | 进入软件测试论坛讨论

领测软件测试网

^q'GZEk| uP SG

:oG B8|brA}a 其他测试方式

$Z2~HK f4[gz 软件测试技术网)q*^&|N9|/U A4C;o

在某些情况下,基于 Action 类中发现的对应逻辑,可能能够用基于 Web 的测试框架(像 JWebUnit 或 Selenium)间接地 测试代码。使用这些框架从测试设置的角度来说,确实增加了复杂性。例如,要使用 JWebUnit,必须把应用程序部署到一个运行着配置好的数据库的 servlet 容器。把 StrutsTestCase 和 DbUnit 协同使用,可以方便测试,不必 把 war 文件部署到运行着的 servlet 容器。它还允许在不 考虑应用程序的视图方面的情况下进行测试。软件测试技术网 Bm&AU$v9H$|
 
T'ikqU!I 
UNg|*A#o7W6J关于逻辑映射

$pW J)n#k-^F Or 软件测试技术网"fSZ^7^j~1z/U J

正确地配置了 MockStrutsTestCase 的实例后,测试 Action 类就只包含一点点逻辑映射。要调用 Action 类,需要强制 StrutsTestCase 框架通过一个路径间接地 调用它,这是在 struts-config.xml 文件中定义的。软件测试技术网nV k mt\!n

软件测试技术网TpWm}{}3J

例如,要强制调用 ChangePasswordAction 类,必须告诉框架使用 /changePasswordSubmit 路径。在清单 5 中可以看到这点,清单 5 中的代码片段来自 struts-config.xml 文件,它把 ChangePasswordAction 类映射到 /changePasswordSubmit 路径:

?B-[6Y sVA8nX

D8Su'[Du#z-jW软件测试技术网;t]Fl]8`2l"g#^&r{
清单 5. struts-config.xml 代码片段显示了动作类路径映射

9i)K$q9fg

4E M*IoJd1UB<action path="/changePasswordSubmit"软件测试技术网4G d y.Wz3^9K U`
         type="com.acme.ccb.action.ChangePasswordAction" 软件测试技术网D h$~&Q0F-z
         name="changePasswordForm" scope="request"
c b;U+B0ejo:e         input="/jsp/admin/changepassword.jsp">
Q"p#Q.K }Hnh7VV$q    软件测试技术网9f:y\+] F[
  <forward name="success" path="/viewUsers.do"
5u&jAVr`5H:j           redirect="true" contextRelative="false" />

0|3h(z)aK"K 软件测试技术网4tV+q+c$M

</action>
M0Q2C:G6{ S/MP 

h*_6i[3z-k$y7]*X)D 软件测试技术网0[7UDh!V

软件测试技术网-u7V%v`;?$T8U IjP |7n
一旦某个用户点击了提交按钮(举例),Struts 就把来自 HTTP 请求的参数值映射到 ActionForm,在这个示例中,是上面的 struts-config.xml 代码片段中(在清单 5 中)定义的 ChangePasswordForm。要模拟这个行为,在测试用例中必须有另一个逻辑映射 —— JSP 表单名称必须映射到值。在口令修改场景中,提交了四个参数:username、currentPassword、newPassword1 和 newPassword2( newPassword2 参数是多数 Web 页面为了校验新口令正确的确认信息)。 软件测试技术网Y{,h:o#t k!k4R

z D7u S+r#LZ成功的测试用例!软件测试技术网9F3Y s:|