我正在尝试编写一个应用程序的自动化测试,该测试基本上将自定义消息格式转换为 XML 消息并将其发送到另一端。我有一组很好的输入/输出消息对,所以我需要做的就是发送输入消息并监听从另一端传出的 XML 消息。
当需要将实际输出与预期输出进行比较时,我遇到了一些问题。我的第一个想法是对预期消息和实际消息进行字符串比较。这不是很好,因为我们拥有的示例数据的格式并不总是一致的,而且 XML 名称空间经常使用不同的别名(有时根本不使用名称空间。)
我知道我可以解析这两个字符串,然后遍历每个元素并自己比较它们,这并不难做到,但我觉得有更好的方法或我可以利用的库。
所以,归结起来,问题是:
给定两个都包含有效 XML 的 Java 字符串,您将如何确定它们在语义上是否等价?如果您有办法确定差异是什么,则可加分。
原文由 Mike Deck 发布,翻译遵循 CC BY-SA 4.0 许可协议
听起来像是 XMLUnit 的工作
例子: