WEB开发网
开发学院软件开发Java 追求代码质量: 测试 Struts 遗留的应用程序 阅读

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

 2009-11-19 00:00:00 来源:WEB开发网   
核心提示: 由于一些特定的假设,所以 清单 6 中的测试用例不是可重复的,追求代码质量: 测试 Struts 遗留的应用程序(8),首先,测试用例假设在系统中已经 有一个名为 “jane” 的用户,并映射一些值到列(例如列 username 拥有值 “jane&rdquo

由于一些特定的假设,所以 清单 6 中的测试用例不是可重复的。首先,测试用例假设在系统中已经 有一个名为 “jane” 的用户,它的口令是 “admin”。其次,测试用例假设在某些永久存储 中口令 “admin” 被更新成 “meme”。正如所写的那样,只要代码没有生成异常,ActionForm 成功验证,Struts 就假定事情工作良好,测试用例也是一样。

现在需要的是更深层次的验证 —— 在数据库层次。对于应当更新口令的测试用例来说,理想情况下应当在数据库上 执行检查,确保那里有一个新口令。对于口令不应当修改的测试来说,需要进行验证,真正检验没有修改 口令。最后,要让这个测试套件可重复,最好是不要 对数据完整性做任何假设。

DbUnit 是个专门方便把数据库放进测试状态中已知状态的 JUnit 扩展。使用 XML 种子文件,可以把特定数据插入到测试用例可以依靠的数据库中。而且,使用 DbUnit API,可以容易地比较数据库的内容和 XML 文件的内容,从而提供一个在应用程序代码之外 校验预期数据库结果的机制。

用 DbUnit 进行测试

要使用 DbUnit,需要两样东西:

通过普通 JDBC 的数据库连接

一个文件,包含需要放到数据库中的数据

清单 7 是一个 DbUnit 种子文件,只定义了几样东西:首先,有一个叫做 user 的表和另一个叫做 user_role 的表。在 user 表中定义了一个新行,并映射一些值到列(例如列 username 拥有值 “jane”)。在 user_role 中还定义了一行。请注意这个数据库中的口令是通过 SHA 加密的。


清单 7. 用于测试表 user 和 user_role 的 DbUnit 种子文件
<?xml version='1.0' encoding='WINDOWS-1252'?> 
<dataset> 
 <!-- user with password admin --> 
 <user username="jane" 
  password="d033e22ae348aeb5660fc2140aec35850c4da997" 
  name="Jane Admin" 
  date_created="2003-8-14 10:10:10" 
  email="jane@elsewhere.org"/> 
 
 <user_role username="jane" rolename="ADMIN"/> 
</dataset> 

上一页  3 4 5 6 7 8 9 10  下一页

Tags:追求 代码 质量

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接