首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于C++的XMLUnit

用于C++的XMLUnit
EN

Stack Overflow用户
提问于 2009-02-05 16:32:27
回答 6查看 1.5K关注 0票数 8

有没有人知道C++有没有像XMLUnit这样的东西?我正在寻找一种简单的方法来检查XML输出中的节点、值等。我们在Visual Studio中使用Google测试,但我认为任何使工作更容易的库都足够了。

我使用Xerces作为XML解析器,但是XMLUnit (http://xmlunit.sourceforge.net/)有一些包装在XML解析器上的特性,这些特性对于单元测试非常有用。例如,使用XPath表达式的断言,比较两个“相似”XML的函数,等等。

EN

回答 6

Stack Overflow用户

发布于 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操作的明显产品。所以答案是,我认为你将不得不推出自己的。祝好运。

票数 1
EN

Stack Overflow用户

发布于 2012-08-01 07:30:17

我真的很喜欢http://pugixml.org/

It:

  • 很稳定
  • 速度极快
  • 有很好的文档和示例代码
  • 在麻省理工学院的许可下获得许可<代码>H110对STL非常友好<代码>H211<代码>H112仍然是一个相当活跃的项目<代码>H213<代码>H114非常支持

<代码>H215<代码>F216

票数 0
EN

Stack Overflow用户

发布于 2009-02-16 16:11:00

你可以在这里使用tinyxml包:tinyxml

我正在使用它,它非常友好,并且没有bug。

这是一个xml处理。我猜它不是为单元测试而设计的,但是您可以使用它来检查/测试您的xml文件。不出所料,它将xml加载到一个DOM对象中,并提供了一个在节点上运行的很好的API。

盖尔

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/516682

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档