预期回应:
{"data":{
{"assignments":[{"locationId":"1186755","locationName":"X.11.11"},{"locationId":"1186756","locationName":"X.11.12"}]}}}
回应:
{"data":{
{"assignments":[{"locationId":"1186756","locationName":"X.11.12"},{"locationId":"1186755","locationName":"X.11.11"}]}}}
我看到一篇帖子说要使用 karate.sort(response, x=>x.locationId),当我尝试时它给了我空响应。有没有什么简单的方法可以实现对整个响应文件进行比较,而不考虑顺序?
注意:我什至尝试过 contains only,但断言失败。
只需使用
contains deep
:https://stackoverflow.com/a/64373344/143475
* def response = {"assignments":[{"locationId":"1186755","locationName":"X.11.11"},{"locationId":"1186756","locationName":"X.11.12"}]}}}
* match response contains deep {"assignments":[{"locationId":"1186756","locationName":"X.11.12"},{"locationId":"1186755","locationName":"X.11.11"}]}}}
有没有一种方法可以将响应与期望的 json 相匹配。 json 可能因嵌套和数组而变得复杂。我尝试了“响应包含深度”,但收到错误 - TestRunner > testAll() > karate.xyz.TestRunner.initializationError FAILED FeatureParser.java 处的 java.lang.RuntimeException:74
我的功能文件包含
并且匹配响应包含深层{ JSON }
其中 JSON 是浏览器开发人员工具中显示的内容。
== 当替换“contains deep”时也会类似失败