断言中缺少属性,该断言应用于一一检查json

问题描述 投票:0回答:1

我的应用程序数据库colA存储的数据如下:

{
  "A": "A ABC123",
  "B": "B ABC123",
  "C": "C ABC123",
  "D": "D ABC123"
}

我已经编写了单元测试代码来检查响应:

//SQL statement
String dbQuery = "SELECT * FROM items.A where id = 'ABC123' order by lastmodificationdateutc desc"


//Connect to SQL Server, global variable is stored at profile
List results = CustomKeywords.'swisslog.database.getSQLResults'(GlobalVariable.dbConnString , GlobalVariable.dbUsername , GlobalVariable.dbPassword ,GlobalVariable.dbDriver ,dbQuery )

//print the "operationnotice" column
String colA = results.get(0).get('colA')
println(colA)

assertThat(colA.A).isEqualTo("A ABC123")
assertThat(colA.B).isEqualTo("B ABC123")
assertThat(colA.C).isEqualTo("C ABC123")
assertThat(colA.D).isEqualTo("D ABC123")

错误返回如下:

groovy.lang.MissingPropertyException: No such property: A for class: java.lang.String

我可以正确看到打印的内容

2019-10-29 16:14:26.979 DEBUG testcase.1
- 5: println(colA)
{
  "A": "A ABC123",
  "B": "B ABC123",
  "C": "C ABC123",
  "D": "D ABC123"
}
groovy assert assertion
1个回答
0
投票

找到答案,我添加了一些代码来解析json然后声明它们]

def json = new JsonSlurper().parseText(new String(colA))
println('response text: \n' + JsonOutput.prettyPrint(JsonOutput.toJson(colA)))


assertThat(json.A).isEqualTo("A ABC123")
assertThat(json.B).isEqualTo("B ABC123")
assertThat(json.C).isEqualTo("C ABC123")
assertThat(json.D).isEqualTo("D ABC123")
© www.soinside.com 2019 - 2024. All rights reserved.