如何使用groovy断言json响应内容?
在回应请求时,我有以下内容:如何使用groovy断言json响应内容?,groovy,jsonslurper,Groovy,Jsonslurper,在回应请求时,我有以下内容: "comp":[ { "type":"header", "version":1, "settings": {"logo":"mylogo", "logoPosition":"left", "inverseLogosPosition":false, "headerTitle":"My Report", "headerTitlePosition":"left", "pageBreak":false }
"comp":[
{
"type":"header",
"version":1,
"settings":
{"logo":"mylogo",
"logoPosition":"left",
"inverseLogosPosition":false,
"headerTitle":"My Report",
"headerTitlePosition":"left",
"pageBreak":false
}
},
我想断言设置的内容。
例如,我尝试使用此方法来断言logosposition=“left”
断言json.components.settings[0]。logoPosition[0]=“左”
它不起作用了
这部分工作正常:
assert json.comp.type[0] == "header"
assert json.comp.version[0] == 1
请提供任何帮助,谢谢这将只是
logosposition
,而不是logosposition[0]
为什么不将一些预期的json作为字符串,用JsonSlurper将其转换为映射,然后进行比较?提供的json无效。您可以使用两种路径: 完整示例:
import groovy.json.JsonSlurper
def json = '''{
"comp":[
{
"type":"header",
"version":1,
"settings": {
"logo":"mylogo",
"logoPosition":"left",
"inverseLogosPosition":false,
"headerTitle":"My Report",
"headerTitlePosition":"left",
"pageBreak":false
}
}
]}'''
def slurped = new JsonSlurper().parseText(json)
assert slurped.comp.settings.logoPosition[0] == "left"
assert slurped.comp[0].settings.logoPosition == "left"
@柯克·道格拉斯,不是我的:)蒂姆·耶茨,首先解决了这个问题:)
import groovy.json.JsonSlurper
def json = '''{
"comp":[
{
"type":"header",
"version":1,
"settings": {
"logo":"mylogo",
"logoPosition":"left",
"inverseLogosPosition":false,
"headerTitle":"My Report",
"headerTitlePosition":"left",
"pageBreak":false
}
}
]}'''
def slurped = new JsonSlurper().parseText(json)
assert slurped.comp.settings.logoPosition[0] == "left"
assert slurped.comp[0].settings.logoPosition == "left"