pet*_*ust 9 xml diff unit-testing
我经常需要测试XML文件是否正确,并且需要一种方法来测试2个XML字符串(或文档)是否相同,例如:
XMLAssert.assertEquals(String xmlExpected, String xmlActual);
Run Code Online (Sandbox Code Playgroud)
此外,显示xml文档的不同之处也很有用.
这应该仅限于standalone ="yes"的文档(即DTD或模式 - 如果有的话 - 不重要).这意味着没有默认值,属性类型无关紧要.应对相邻文本PCDATA节点进行规范化(连接).
请注意,这不能简单地通过词法比较来完成
Assert.assertEquals(xmlExpected, xmlActual);
Run Code Online (Sandbox Code Playgroud)
因为有无限多种方式呈现相同的XML信息集.比较应考虑元素和属性的名称空间(但不考虑属性值 - 这不是规范的一部分).
实现此目的的一种方法可能是将两个文档规范化.或者,可以使用XMLDiff.
几年前我找不到任何自己写的东西.
[我也特别需要比较浮点值,虽然这必须是一个黑客,因为CDATA或PCDATA的数据类型只能被猜到并且不在问题的直接范围内.]
注意:可能需要为每种语言提供特定的解决方案.我对Java和C#特别感兴趣
对于Java,您应该检查XMLUnit.我刚刚注意到它也带有.NET版本!这是Java版本的示例:
String myControlXML = "<msg><uuid>0x00435A8C</uuid></msg>";
String myTestXML = "<msg><localId>2376</localId></msg>";
assertXMLNotEqual(myControlXML, myTestXML);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4597 次 |
最近记录: |