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

追求代码质量: 探究 XMLUnit

 2009-11-19 00:00:00 来源:WEB开发网   
核心提示: 注意一下我是如何实例化 XMLUnit 的 setControlParser、setTestParser 和 setSAXParserFactory 方法的,您可以为这些值使用任何兼容 JAXP 的解析器,追求代码质量: 探究 XMLUnit(5),还要注意我是用 true 调用 setIgno

注意一下我是如何实例化 XMLUnit 的 setControlParser、setTestParser 和 setSAXParserFactory 方法的。您可以为这些值使用任何兼容 JAXP 的解析器。还要注意我是用 true 调用 setIgnoreWhitespace 的 —— 这是一根救命稻草,相信我!否则,不一致的空白会导致很多故障。

用 Diff 比较

Diff 类支持两种比较:identical 和 similar。如果所比较的文档在结构和值(如果设置了标志就忽略空白)方面都完全相同,那么它们就被认为是 identical;如果两个文档是完全相同的,那么它们也就很自然的是 similar 的。反之,却不一定。

例如,清单 4 是与清单 5 相似的一个简单的 XML 代码片段,但二者并不相同:


清单 4. 一个帐号 XML 片段
<account> 
 <id>3A-00</id> 
 <name>acme</name> 
</account> 

清单 5 中的 XML 片段与清单 4 中所示的 XML 片段有相同的逻辑文档。但 XMLUnit 并不认为二者是相同的,原因是二者的 name 和 id 元素是颠倒的。


清单 5. 一个相似的 XML 片段
<account> 
 <name>acme</name> 
 <id>3A-00</id> 
</account> 

相应地,我可以编写测试用例来验证 XMLUnit 的行为,如清单 6 所示:


清单 6. 用来验证相同性和相似性的测试
public void testIdenticalAndSimilar() throws Exception { 
 String controlXML = "<account><id>3A-00</id><name>acme</name></account>"; 
 String testXML = "<account><name>acme</name><id>3A-00</id></account>"; 
 Diff diff = new Diff(controlXML, testXML); 
 assertTrue(diff.similar()); 
 assertFalse(diff.identical()); 
} 

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

Tags:追求 代码 质量

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