- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在 JUnit 测试中将保存的示例 xml 与实时编码的 xml 进行比较。验证 xml 中是否存在键值对。
我正在使用XmlUnit具体为2.1.0
我的xml如下:
<entries>
<entry>
<key>delete</key>
<value>ENABLED</value>
</entry>
<entry>
<key>view</key>
<value>DISABLED</value>
</entry>
<entry>
<key>create</key>
<value>DISABLED</value>
</entry>
</entries>
条目的顺序可能有所不同。我不确定如何让它正确验证,因为它将不同的键值视为 xml 中的差异,即使它只是订单更改。
我断言与 JUnit 中的以下断言相似:
assertThat(marshalledXml, isSimilarTo(Input.fromFile("path/to/example.xml").ignoreWhitespace().ignoreComments());
我怀疑我可能需要使用 XPath 匹配器或带有 ElementSelector 的 DefaultNodeMatchers。
最佳答案
是的,您需要提供一个ElementSelector
,它“知道”在您的具体情况下选择哪些节点进行比较。
对于文档的大部分内容,元素的名称似乎是您应该使用的名称。至少对于 entries
、key
和 value
来说是这样。对于 entry
元素,您想要比较那些在其直接子元素 key
元素中具有匹配嵌套文本的元素,对吗?
我认为这可以翻译为
ElementSelectors.conditionalBuilder()
.whenElementIsNamed("entry")
.thenUse(ElementSelectors.byXPath("./key", ElementSelectors.byNameAndText))
.elseUse(ElementSelectors.byName)
.build();
参见https://github.com/xmlunit/user-guide/wiki/SelectingNodes有关 ElementSelector
选项的更详细讨论。您的 XML 与简介中使用的以及下一节中讨论的 table
示例非常接近。
关于java - 基于值的 XmlUnit 顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36408042/
如何配置 XmlUnit.Net 在比较两个文档时忽略 XML 声明? 假设我有以下控制文档: 1 我想比较的是: 1 比较应该没有差异。 我的期望是像这样使用 NodeFilter 应该可行,但
我想使用XMLUnit比较两个相似的 XML 文件。 基本上一切都是一样的, File1 是 File2 的副本,但在 File2 中我更改了其中一些元素的顺序节点。 我正在尝试运行一个测试,比较这些
XMLUnit 2 中有没有办法使这两个文档返回相同(或相似)?我可以做一些预处理来获取子节点,但我想看看是否可以直接使用 XMLUnit 来完成。 文档1: test 文档2: test 最佳答案
我熟悉忽略属性值的差异,但是完全按名称忽略属性的正确方法是什么?如何使这两个文档评估为相似? 文档1: 文档2: 最佳答案 这最终对我有用。 (如果有其他解决方案,请告诉我) DiffBuilde
我想比较两个 XML 文件,但仅基于标签值,我还需要比较整个标签,例如 text1 text2 我需要实现的是表明不一样,我不在乎text1 text2不同之处。问题是,默认情况下 XMLUnit 将
我正在使用 XMLunit 来比较以下 XML XML 1 Some Text XML 2 Some Text 我希望只有元素 2 会有所不同,但是我得到的元素 1 却有这样的差异 "
我有两个要比较的 XML 文件。我正在使用 XMLUnit 2。但是元素可能会乱序(包括子元素排序)下面的所有三个示例都需要被视为等效: Test 01 T
我在 XMLUnit 的帮助下比较两个 xml 文件现在如果我使用这段代码来比较 @Test public void testForEquality() throws Exception { Str
我需要区分包含生成的 .xml 和 .wsdl 文件的大型目录结构。生成的 .xml 文件在子元素出现的顺序上有所不同。 XmlUnit Diff.similar() 方法应该处理这种情况: '如果两
我想在测试中比较两个 xml 字符串,但由于空格,测试一直失败。 @Test public void testForEquality() throws Exception { String myCo
我有以下 testXML test bee 虽然 templateXML 看起来像这样 我希望 XMLUnit 返回缺少的元素,在本
我有一个使用 JDOM2 库生成 XML 文档的应用程序。在我的单元/集成测试中,我需要将生成的文档与手工制作的示例文档进行比较以确定是否相等。 对于标准 org.w3c.dom.Document 对
有没有办法完全忽略 XMLUnit 中的空标签,以便在比较时不考虑它?例如: data1 data2 和 data1 data2 不应返回任何差异。是否有任何内置函数可以执行此操作?谢谢。
使用 xmlunit-2 比较 XML 时,我似乎无法弄清楚如何设置命名空间 尝试过: @Test public void testDiff_withIgnoreWhitespaces_
我正在使用 XMLUnit 来比较两个 XML。当我将测试类手册作为 jUnit 测试执行时,这工作得很好。 但现在我想调用另一个类(class)的测试。我可以执行 testMethod,但没有任何反
您好,我正在尝试使用 XML 单元 RecursiveElementNameAndTextQualifier ,但我的下面的测试失败了。当我在下面的测试 xml 文件中交换 foo3 和 foo2 的
这个问题已经有答案了: Compare two XML strings ignoring element order (9 个回答) 已关闭 7 年前。 我正在 JUnit 测试中将保存的示例 xml
我需要比较两个具有不同实体顺序的 XML 文件。 1 2 3 4
我目前正在尝试使用 XML Unit。我有两个文件,测试和控制,我想比较。 我的场景是我只想测试两个的东西(版本和id)而忽略其余的。 这是我尝试做的: final org.xmlunit.di
尝试让这两个 XML 相似(想忽略 xmlns)和不同的元素序列,但对我来说不能正常工作。如果删除 xmlns,doc 是 simmilr。我正在使用 XMlUnit 1.5 String s1 =
我是一名优秀的程序员,十分优秀!