我目前正在尝试使用XML Unit。我有两个文件,测试和控制,我想比较。
我的情况是我只想测试两个事物(版本和ID)并忽略其余部分。
以下是我试图做的事情:
final org.xmlunit.diff.Diff result = DiffBuilder
.compare(controlxml)
.withTest(testxml)
.withNodeFilter(node -> node.getNodeName().equals("id") && node.getNodeName().equals("version"))
.build();
这不起作用,因为我没有得到任何差异。它似乎过滤掉了每一个差异。
如果我这样做:
.withNodeFilter(node -> !node.getNodeName().equals("name") ...)
我可以过滤掉我不想要的东西(比如示例中的名字)。然而,这不太可行,因为有很多事情我不想比较。
我是否真的必须明确定义我要过滤的每一个?为什么我不能告诉它我想要的两个" node.getNodeName()。equals"它会自动过滤掉其余部分吗?
要么我做错了,要么我迷路了。亲爱的Stack Overflow,感谢您提供任何帮助。
答案 0 :(得分:1)
不使用或(||)和(&&)
final org.xmlunit.diff.Diff result = DiffBuilder
.compare(controlxml)
.withTest(testxml)
.withNodeFilter(node -> node.getNodeName().equals("id") || node.getNodeName().equals("version"))
.build();