不支持的字符串匹配类型:CONTAINS_DEEP
unsupported match type for string: CONTAINS_DEEP
我正在尝试使用 Karate 对一些深度嵌套的 JSON 对象进行比较。似乎“包含深度”正是我正在寻找的,除非如果嵌套数组之一仅包含此处所示的字符串值,它似乎不起作用(简单情况,而不是我正在尝试工作的实际响应与):
Feature:
Background:
* configure logPrettyRequest = true
* configure logPrettyResponse = true
Scenario:
* def actual =
"""
{
"person": {
"hobbies": [{
"name":"basketball",
"equipment":[
"basketball",
"shoes",
"jersey"
]
}]
}
}
"""
* def expected =
"""
{
"person": {
"hobbies": [{
"name":"basketball",
"equipment":[
"shoes",
"jersey"
]
}]
}
}
"""
Then match actual contains deep expected
失败并显示以下错误消息:
unsupported match type for string: CONTAINS_DEEP
这是目前不受支持的东西吗?有计划在未来允许吗?还是有另一种方法可以做到这一点?理想情况下,我尽量避免单独比较 json 的不同部分,因为我正在处理的有效载荷非常大。
事实证明,这个问题已在最新的 karate-core 候选版本中得到解决。看到这个问题:https://github.com/intuit/karate/issues/1475.
将这个添加到我的 pom 解决了我的问题:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.intuit.karate</groupId>
<artifactId>karate-core</artifactId>
<version>0.9.9.RC4</version>
</dependency>
</dependencies>
</dependencyManagement>
我正在尝试使用 Karate 对一些深度嵌套的 JSON 对象进行比较。似乎“包含深度”正是我正在寻找的,除非如果嵌套数组之一仅包含此处所示的字符串值,它似乎不起作用(简单情况,而不是我正在尝试工作的实际响应与):
Feature:
Background:
* configure logPrettyRequest = true
* configure logPrettyResponse = true
Scenario:
* def actual =
"""
{
"person": {
"hobbies": [{
"name":"basketball",
"equipment":[
"basketball",
"shoes",
"jersey"
]
}]
}
}
"""
* def expected =
"""
{
"person": {
"hobbies": [{
"name":"basketball",
"equipment":[
"shoes",
"jersey"
]
}]
}
}
"""
Then match actual contains deep expected
失败并显示以下错误消息:
unsupported match type for string: CONTAINS_DEEP
这是目前不受支持的东西吗?有计划在未来允许吗?还是有另一种方法可以做到这一点?理想情况下,我尽量避免单独比较 json 的不同部分,因为我正在处理的有效载荷非常大。
事实证明,这个问题已在最新的 karate-core 候选版本中得到解决。看到这个问题:https://github.com/intuit/karate/issues/1475.
将这个添加到我的 pom 解决了我的问题:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.intuit.karate</groupId>
<artifactId>karate-core</artifactId>
<version>0.9.9.RC4</version>
</dependency>
</dependencies>
</dependencyManagement>