追求代码质量: 探究 XMLUnit
2009-11-19 00:00:00 来源:WEB开发网清单 2 中的测试有其他一些重大的缺陷 —— 而不仅仅是硬编码 String 比较那么简单。首先,测试并不真正可读。第二,它惊人的脆弱;一旦 XML 文档的格式改变(包括添加空格),与其尝试修复 String 本身,还不如粘贴进一个新的文档副本。最后,测试的本性会迫使您必须应付 Date 方面,虽然您并不想如此。
若想确保文档中第二个 Class 元素的 name 值是 com.acme.web.Account 又该如何呢?当然,您可以使用常规表达式或 String 搜索,但所需的工作量太大。这样看来,通过一个解析框架来操纵此 DOM 不是更有意义么?
XMLUnit 能否用于 TestNG?
XMLUnit 是一个 JUnit 扩展,但这并不意味着不能在 TestNG 使用它。只要它具有 API 而且此 API 支持委托同时不基于修饰器,那么您可以将几乎任何框架整合进 TestNG。
用 XMLUnit 进行测试
当您感觉自己为完成一项任务而努力过了头,您就可以想想解决此问题是否还有更容易的捷径可寻。如果所要解决的问题涉及的是编程式地验证 XML 文档,那么所应想到的解决方案就是 XMLUnit。
XMLUnit 是一种 JUnit 扩展框架,有助于开发人员测试 XML 文档。实际上,XMLUnit 是一种真正的 XML 测试的“多面手”:可以使用它来验证 XML 文档的结构、内容甚至该文档的指定部分。
最简单的做法是使用 XMLUnit 在逻辑上对比运行时 XML 文档和预定义的有效控制文件。本质上讲,这就是一种差异测试:假定一个 XML 文档是正确的,那么此应用程序在运行时是否会生成同样的东西?它是相对简单的一种测试,但也可以使用它来验证 XML 文档的结构和内容。也可以通过 XPath 的一点帮助来验证特定内容。
更多精彩
赞助商链接