java - 匹配 Karate 中每个元素的字符串 json 数组响应

标签 java spring-boot integration-testing karate

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

"contacts": [
  "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="4d283539283f232c2129283b2821223d283f7c0d28352c203d21282922202c2423632e2220" rel="noreferrer noopener nofollow">[email protected]</a>",
  "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="6104191504130f0053050417040d0e11041350210419000c110d04050e0c00080f4f020e0c" rel="noreferrer noopener nofollow">[email protected]</a>"
]

现在我需要匹配该数组中的每个元素以检查其值。

在功能文件中:

When method POST
Then status 200
* match  response.contacts contains ['<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="2f4a575b4a5d414e434b4a594a43405f4a5d1e6f4a574e425f434a4b40424e4641014c4042" rel="noreferrer noopener nofollow">[email protected]</a>', <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="76130e021304181744121300131a190613044736130e171b061a1312191b171f185815191b" rel="noreferrer noopener nofollow">[email protected]</a>]

但出现语法错误:

match  response.contacts contains ['<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="42273a3627302c232e262734272e2d3227307302273a232f322e27262d2f232b2c6c212d2f" rel="noreferrer noopener nofollow">[email protected]</a>', <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="88edf0fcedfae6e9baecedfeede4e7f8edfab9c8edf0e9e5f8e4edece7e5e9e1e6a6ebe7e5" rel="noreferrer noopener nofollow">[email protected]</a>]

连我也在做 assert response.contacts.[0] == '<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="22475a5647504c434e464754474e4d5247501362475a434f524e47464d4f434b4c0c414d4f" rel="noreferrer noopener nofollow">[email protected]</a>'这也失败了。有什么帮助吗?

最佳答案

对我有用。您一定在某个地方有一些拼写错误或基本错误。

* def response = { "contacts": [ "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="ea8f929e8f98848b868e8f9c8f86859a8f98dbaa8f928b879a868f8e85878b8384c4898587" rel="noreferrer noopener nofollow">[email protected]</a>", "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="caafb2beafb8a4abf8aeafbcafa6a5baafb8fb8aafb2aba7baa6afaea5a7aba3a4e4a9a5a7" rel="noreferrer noopener nofollow">[email protected]</a>" ] }
* match response.contacts contains [ '<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="25405d5140574b444941405340494a5540571465405d4448554940414a48444c4b0b464a48" rel="noreferrer noopener nofollow">[email protected]</a>', '<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="94f1ece0f1e6faf5a6f0f1e2f1f8fbe4f1e6a5d4f1ecf5f9e4f8f1f0fbf9f5fdfabaf7fbf9" rel="noreferrer noopener nofollow">[email protected]</a>' ]
* match response.contacts[1] == '<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="ea8f929e8f98848bd88e8f9c8f86859a8f98dbaa8f928b879a868f8e85878b8384c4898587" rel="noreferrer noopener nofollow">[email protected]</a>'

关于java - 匹配 Karate 中每个元素的字符串 json 数组响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59677251/

相关文章:

java - 执行测试时 Assertj-swagger 抛出 org.assertj.core.error.AssertJMultipleFailuresError 多次失败

java - 使用纯 Java 和 Springboot 在 Vaadin 中更改 FavIcon

java - Intellij IDEA 看不到测试(java.lang.Exception : No tests found in class)

java - 如何放置正确的意图参数?

java - 如何通过 Selenium 将 Xcode 模拟器设置为以编程方式旋转到 iPhone/iPad 的横向

spring-boot - LastModifiedDate 应该使用什么转换器,因为它会抛出 UnsupportedTemporalTypeException 错误

c# - 集成测试期间的 ASP.NET Core 3 模拟授权

linux - 来自 java 的 UUID.randomUUID() 的重复 UUID 集

java - 写新行记事本

unit-testing - 删除 "integration test scam"- 了解协作和契约(Contract)测试