有没有人知道C++有没有像XMLUnit这样的东西?我正在寻找一种简单的方法来检查XML输出中的节点、值等。我们在Visual Studio中使用Google测试,但我认为任何使工作更容易的库都足够了。
我使用Xerces作为XML解析器,但是XMLUnit (http://xmlunit.sourceforge.net/)有一些包装在XML解析器上的特性,这些特性对于单元测试非常有用。例如,使用XPath表达式的断言,比较两个“相似”XML的函数,等等。
发布于 2013-01-12 00:58:31
在过去,我使用了Xerces和CPPUnit的组合来完成这项工作。在我的测试用例中,我将在setUp()函数中使用Xerces API创建一个DOM对象。这个DOM将代表我预期的结果。在测试用例本身中,我将读取XML文件,测试中的类将填充一个表示文件内容的DOM对象。为了检查相等性,我会通过Xerces API (DOMTreeWalker)遍历两个DOM树,并在比较DOM节点的内容时使用CPPUnit断言。这有点单调乏味,但当时还没有可以模仿XmlUnit的框架。我可以想象,在完成这项任务时,Google Test会和CPPUnit一样好用。
Xerces API对XPath表达式有一些支持:
http://xerces.apache.org/xerces-c/faq-parse-3.html#faq-2
对于验证,您需要设置此处提到的错误处理程序,并将其合并到您的测试用例中:
Validating document in Xerces C++
对于XSLT转换检查,需要使用Xalan。它可以与Xerces一起工作,所以我预计不会有任何大的困难:
http://xalan.apache.org/old/xalan-c/index.html
我找不到任何用C++打包类似XMLUnit操作的明显产品。所以答案是,我认为你将不得不推出自己的。祝好运。
发布于 2012-08-01 07:30:17
我真的很喜欢http://pugixml.org/
It:
<代码>H215<代码>F216
发布于 2009-02-16 16:11:00
你可以在这里使用tinyxml包:tinyxml
我正在使用它,它非常友好,并且没有bug。
这是一个xml处理。我猜它不是为单元测试而设计的,但是您可以使用它来检查/测试您的xml文件。不出所料,它将xml加载到一个DOM对象中,并提供了一个在节点上运行的很好的API。
盖尔
https://stackoverflow.com/questions/516682
复制相似问题