我有一个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]
即使我在做
assert response.contacts.[0] == 'externaldeveloper1@exampledomain.com'
也会失败。有帮助吗?
答案 0 :(得分:1)
为我工作。您必须在某处犯错或基本错误。
* 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'
答案 1 :(得分:1)
如果您的空手道代码
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'
失败很简单。 contacts
之后的点太多了。
正确:
* assert response.contacts[0] == 'externaldeveloper1@exampledomain.com'