WEB开发网
开发学院软件开发Java 追求代码质量: 探究 XMLUnit 阅读

追求代码质量: 探究 XMLUnit

 2009-11-19 00:00:00 来源:WEB开发网   
核心提示: 相似和相同的 XML 文档之间的差异是很微小的;但若能验证两者却非常有用,例如在需要测试由不同应用程序或客户程序生成的文档的情况下,追求代码质量: 探究 XMLUnit(6),验证结构除了验证内容之外,您还需要验证 XML 文档的结构,必须声明这两个文档是 similar 而非 identica

相似和相同的 XML 文档之间的差异是很微小的;但若能验证两者却非常有用,例如在需要测试由不同应用程序或客户程序生成的文档的情况下。

验证结构

除了验证内容之外,您还需要验证 XML 文档的结构。在这种情况下,元素和属性的值并不重要 —— 您所关心的是结构。

还好,我还可以再次使用清单 3 中定义的测试用例来验证文档的结构,并可以有效忽略元素文本值和属性值。为实现此目的,我调用 Diff 类上的 overrideDifferenceListener() 并为它添加由 XMLUnit 提供的 IgnoreTextAndAttributeValuesDifferenceListener。修改后的测试如清单 7 所示:


清单 7. 无需属性值验证 XML 结构
public void testToXMLFormatOnly() throws Exception{ 
 BatchDependencyXMLReport report = 
  new BatchDependencyXMLReport(new Date(), this.getFilters()); 
 
 report.addTargetAndDependencies( 
  "com.acme.web.Widget", this.getDependencies()); 
 report.addTargetAndDependencies( 
  "com.acme.web.Account", this.getDependencies()); 
 
 Diff diff = new Diff(new FileReader( 
  new File("./test/conf/report-control.xml")), 
  new StringReader(report.toXML())); 
 
 diff.overrideDifferenceListener( 
  new IgnoreTextAndAttributeValuesDifferenceListener()); 
 assertTrue("XML was not similar", diff.similar());  
} 

相似但不相同!

当使用 IgnoreTextAndAttributeValuesDifferenceListener 类时,必须声明这两个文档是 similar 而非 identical。如果错误地调用了 identical,那么就需要处理属性值。

上一页  1 2 3 4 5 6 7  下一页

Tags:追求 代码 质量

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