我正在编写几个生成XML文件的类。 (目前的详细信息可能并不重要)。

我想知道最好的测试策略是。

  • 我不想重写XML生成代码只是为了比较输出,当我可以将文件写入磁盘并在某些里程碑上进行比较时(XML规范不会经常更改,例如每对两次或两次年)
  • 我更感兴趣地测试体系结构的行为,而不是Getters&Setters

想到的选项:

  • 在测试环境中重建XML文件并比较字符串表示
  • 手动检查结果(写入文件等)
  • 在测试环境中重建内存中的XML文件并比较内存元素。

虚拟奖励如果您知道C ++和/或Google测试的任何库。

想法?

有帮助吗?

解决方案

您是否考虑过使用XSD并将XML验证为XSD?您没有提及您正在测试的内容或结构(可能两者都)。
如果验证,它将测试XML的结构,将符合所需的结构。

其他提示

过去,我已经接近了这两种方法:

将XML文件与测试文件中的字符串存储的结果进行比较。这很容易实现,除非您想生成XML文件的变体以进行测试,否则字符串比较方法可以正常工作。

如果您拥有XML文件作家和读者,则可以将原始结果与往返结果进行比较。

我同意您的观点,您不应该复制逻辑以在测试功能中生成文件,而只是为了进行测试。另外,我将尽力避免将需要写入文件系统 - 这是对文件系统的不必要依赖性,并且可能导致运行测试较慢。

您可以考虑使用XML单元: http://xmlunit.sourceforge.net。它提供了可以用来断言XML文件平等的JUNIT扩展类。

您可以考虑使用XML DIFF工具。 MSDN上有一个免费的: XML差异和补丁工具.

我看到您正在寻找C ++工具。在这种情况下, libxmldiff 可能更合适。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top