单元测试检查大型xml文件中大型xml片段的出现

时间:2014-09-22 16:29:50

标签: java xml unit-testing ms-word

我有一个应用程序,它根据众多参数输出一个大Word XML Formatted xml个文件(沿200000行)。

我想编写单元测试来根据参数组合检查输出文件的内容。

我需要一种方法来检查输出文件中是否存在大型xml片段,没有与格式相关的问题(标签外的空格,标签,新行等):

//that would be perfect
assertXMLContains("Checking if outputted xml contains the needed xml snipped",
                       outputtedXml, mySnipXML);

优秀的XMLUnit(http://xmlunit.sourceforge.net/)提供了一种断言xml内容相等的方法,因此我似乎无法使用它。

以下是我们需要搜索的xml代码段的示例。它们可以是w:p或w的串联:r元素不必分组在父元素中......

         <w:r w:rsidR="00EE0BED" w:rsidRPr="009322FC">
                        <w:rPr>
                            <w:rFonts w:ascii="Times New Roman Bold" w:eastAsia="Times New Roman" w:hAnsi="Times New Roman Bold"/>
                            <w:b/>
                            <w:caps/>
                            <w:sz w:val="24"/>
                            <w:szCs w:val="24"/>
                            <w:lang w:eastAsia="en-GB"/>
                        </w:rPr>
                        <w:t>Annex V</w:t>
                    </w:r>
                    <w:r w:rsidR="00B40C3C" w:rsidRPr="009322FC">
                        <w:rPr>
                            <w:rFonts w:ascii="Times New Roman Bold" w:eastAsia="Times New Roman" w:hAnsi="Times New Roman Bold"/>
                            <w:b/>
                            <w:caps/>
                            <w:sz w:val="24"/>
                            <w:szCs w:val="24"/>
                            <w:lang w:eastAsia="en-GB"/>
                        </w:rPr>
                        <w:t>II</w:t>
                    </w:r>

1 个答案:

答案 0 :(得分:0)

这不是大多数人所谓的“单元测试”......

XSLT和XQuery(可公开获得)的W3C测试套件已经远离了比较XML结果的相等性,因为它非常不灵活,并且由于您描述的原因。相反,他们使用断言系统,通常是XPath表达式,而不是像Selenium。