快速业务通道

追求代码质量 - 测试Struts遗留的应用程序 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23
}   private void executeSetUpOperation() throws Exception{   final IDatabaseConnection connection = this.getConnection ();   try{    DatabaseOperation.CLEAN_INSERT.execute(connection,  this.getDataSet());   }finally{    connection.close();   }   }   private IDataSet getDataSet() throws IOException,  DataSetException {   return new FlatXmlDataSet(new File("test/conf/dbunit-user- seed.xml"));   }   private IDatabaseConnection getConnection() throws  ClassNotFoundException, SQLException {   final Class driverClass = Class.forName ("org.gjt.mm.mysql.Driver");   final Connection jdbcConnection = DriverManager.    getConnection("jdbc:mysql://localhost/ccb01",     "9043", "43xli");   return new DatabaseConnection(jdbcConnection);   }   private void verifyPassword(String fileName) throws  Exception{   final IDataSet expectedDataSet = new FlatXmlDataSet(    new File(fileName));   final ITable defJoinData = this.getConnection().    createQueryTable("TestResult",    "select user.username, user.password " +    "from user where user.username=\"jane\"");   final ITable defTable = expectedDataSet.getTable("user");   Assertion.assertEquals(defJoinData, defTable);   } }

追求代码质量 - 测试Struts遗留的应用程序(7)

时间:2010-12-12 IBM Andrew Glover

只多一个测试……

请注意这个测试用例没有测试边界用例,例如:如果两个口令字段 (newPassword1 和 newPassword2())不匹配。谢天谢地,一旦设置好了,添加 另一个测试用例并不难。在清单 12 中,验证了如果两个值不匹配,就生成 ActionError,用户 “jane” 口令在数据库中的值保持不变。

清单 12. 添加新测试

public void testExecuteWithErrors()  throws Exception{    setRequestPathInfo("/changePasswordSubmit");    addRequestParameter("username","jane");    addRequestParameter("currentPassword","admin");    addRequestParameter("newPassword1","meme");    addRequestParameter("newPassword2","emem");    actionPerform();    verifyActionErrors(     new String[] {"error.changePassword.passwordsDontMatch"});    verifyPassword("test/conf/dbunit-expect-user-same.xml");   }

在清单 12 中,我验证了 清单 2 中的逻辑正确地捕捉到了口令值不匹配的 情况。MockStrutsTestCase 类包含一个方便方法可以断言错误条件,这个方法 是 verifyActionErrors(),在这个方法中,错误 String 被传递进来进行验证 。还请注意,数据库被检查,这次是根据另一个包含相同值的文件(在这个示例 中,username “jane” 有一个未加密的 password “admin”)。

Struts 的集成测试

多数 Struts 应用程序不会 很快消失,所以重要的是知道如何在重写之前用 开发人员测试构建一定层次的保证。这个月,我介绍了在测试 Struts 遗留应用 程序时的一些挑战,并介绍了如何用 StrutsTestCase 和 DbUnit 处理它们。

StrutsTestCase 只要配置正确就会处理 St

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号