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

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

 2009-11-19 00:00:00 来源:WEB开发网   
核心提示: 清单 8 中定义的 executeSetUpOperation() 方法将在前面的 清单 4 中定义的 setUp() 方法中调用,这个方法再调用清单 8 中的另两个方法:getDataSet() 把 XML 转换成 DbUnit 的 IDataSet 类型,追求代码质量: 测试 Struts

清单 8 中定义的 executeSetUpOperation() 方法将在前面的 清单 4 中定义的 setUp() 方法中调用。这个方法再调用清单 8 中的另两个方法:getDataSet() 把 XML 转换成 DbUnit 的 IDataSet 类型,getConnection() 则返回包装成 DbUnit 的 IDatabaseConnection 类型的数据库连接。

更好的测试用例

配置好 DbUnit 后,剩下的就只有改进 清单 6 的测试用例,验证数据库中的一切 OK。然后,添加验证其他问题场景的其余测试用例。

要确认数据库中的口令更新,可以使用 DbUnit 的查询 API,它帮助比较数据库的结果与静态定义的 XML 文件,例如清单 9 中定义的那个。请注意这个文件没有列出 user 表中的所有列 —— 实际上,它只列出了两个:username 和 password。


清单 9. 比较测试 XML 文件
<?xml version='1.0' encoding='WINDOWS-1252'?> 
<dataset> 
 <user username="jane" 
  password="58117e24e4d0b8a958146c9eaa28336184f4d491"/> 
 
</dataset> 

DbUnit 的查询 API 足够灵活,可以帮助过滤掉没有意义的值,在这个示例中就是 username 和 password 之外的值。同样,在清单 10 中,verifyPassword() 方法用 DbUnit 的 createQueryTable() 方法构建 ITable 类型,以与清单 9 中定义的 XML 进行比较:


清单 10. 使用 DbUnit 查询 API 的 verifyPassword 方法
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); 
} 

上一页  5 6 7 8 9 10 

Tags:追求 代码 质量

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