mma*_*mar 1 ruby json cucumber
我正在像这样比较 ruby+cucumber 中的两个 json 内容或对象,但是当我比较时,它不会忽略内容的顺序(如果内容发生变化)。我知道这个语句比较为两个字符串。那么无论如何我可以通过忽略其顺序来比较两个json对象?
expect(@act_resp_excl_key).to eq(exp_data_excl_key)
Run Code Online (Sandbox Code Playgroud)
使用上述详细信息添加更多信息。我有两个 json 文档,如下所示。
json1 = {
"entries" = > [{
"doingBusinessAsName" = > "KROGER FOODS",
"legalName" = > "Kroger-Corps"
}
]
}
json2 = {
"entries" = > [{
"legalName" = > "Kroger-Corps"
"doingBusinessAsName" = > "KROGER FOODS",
}
]
}
Run Code Online (Sandbox Code Playgroud)
当我在 ruby+cucumber 中比较这两个 json 时,我得到的结果是失败。但逻辑上它是一样的,我应该通过。我使用上面的比较语句来验证两个json。
@tgf,我使用了您指定的语句,但我的比较仍然失败。你能帮我看看是什么问题吗?
expect(JSON.parse(@act_resp_excl_key)).to eq JSON.parse(exp_data_excl_key)
Run Code Online (Sandbox Code Playgroud)
如果数据只是字符串中的 JSON(请发布数据示例),您可以将其解析为 ruby 哈希并进行比较。
require 'json'
JSON.parse(@act_resp_excl_key).class => Hash
Run Code Online (Sandbox Code Playgroud)
然后断言两个哈希值相等:
expect(JSON.parse(@act_resp_excl_key)).to eq JSON.parse(exp_data_excl_key)
Run Code Online (Sandbox Code Playgroud)
即使顺序不同,这也有效。
| 归档时间: |
|
| 查看次数: |
2336 次 |
| 最近记录: |