Java 为空手道中的每个元素匹配字符串json数组响应

Java 为空手道中的每个元素匹配字符串json数组响应,java,spring-boot,integration-testing,karate,Java,Spring Boot,Integration Testing,Karate,我有一个api,它返回字符串json数组作为响应,如下所示。对此,还有其他因素 "contacts": [ "externaldeveloper1@exampledomain.com", "externa2developer1@exampledomain.com" ] 现在我需要匹配这个数组中的每个元素来检查它的值 在要素文件中: When method POST Then status 200 * match response.contacts contains ['externa

我有一个api,它返回字符串json数组作为响应,如下所示。对此,还有其他因素

"contacts": [
  "externaldeveloper1@exampledomain.com",
  "externa2developer1@exampledomain.com"
]
现在我需要匹配这个数组中的每个元素来检查它的值

在要素文件中:

When method POST
Then status 200
* match  response.contacts contains ['externaldeveloper1@exampledomain.com', externa2developer1@exampledomain.com]
但我发现语法错误:

match  response.contacts contains ['externaldeveloper1@exampledomain.com', externa2developer1@exampledomain.com]
连我都在做
断言响应。联系人。[0]='externaldeveloper1@exampledomain.com“
这也会失败。有什么帮助吗?

对我有用。你肯定在什么地方有一些打字错误或基本错误

* def response = { "contacts": [ "externaldeveloper1@exampledomain.com", "externa2developer1@exampledomain.com" ] }
* match response.contacts contains [ 'externaldeveloper1@exampledomain.com', 'externa2developer1@exampledomain.com' ]
* match response.contacts[1] == 'externa2developer1@exampledomain.com'
如果你的空手道密码

When method POST
Then status 200
* match  response.contacts contains ['externaldeveloper1@exampledomain.com', externa2developer1@exampledomain.com]
与您在测试中使用的相同,那么语法错误是您忘记将第二封邮件加引号

正确:

When method POST
Then status 200
* match  response.contacts contains ['externaldeveloper1@exampledomain.com', 'externa2developer1@exampledomain.com']
* assert response.contacts[0] == 'externaldeveloper1@exampledomain.com'
原因是什么

* assert response.contacts.[0] == 'externaldeveloper1@exampledomain.com'
失败很简单。
触点
后的点太多

正确:

When method POST
Then status 200
* match  response.contacts contains ['externaldeveloper1@exampledomain.com', 'externa2developer1@exampledomain.com']
* assert response.contacts[0] == 'externaldeveloper1@exampledomain.com'