【问题标题】:Verify numeric fields in JSON response have values till two decimal points using Karate使用空手道验证 JSON 响应中的数字字段的值直到小数点后两位
【发布时间】:2020-05-19 10:32:11
【问题描述】:

JSON 响应: [ { "actNum": "12345678", “prodType”:“测试”, “时期”: { “一月”: [ { “名称”:“杰克”, “rRar”:12.34, “lRar”:340.45, “地址”:“纽约” }, { “名称”:“豪尔赫”, “rRar”:28.78, “lRar”:250.49, “地址”:“芝加哥” } ] } } ]

我必须验证上述响应 rRar 和 lRar 中的数字字段的值应保留到小数点后两位,例如 12.78,32.56。

如果可以使用 Karate API 完成此验证,谁能帮助我?

【问题讨论】:

    标签: json karate


    【解决方案1】:

    给你:

    * def nums = $response..rRar
    * def temp = $response..lRar
    * karate.appendTo(nums, temp)
    * def strs = karate.map(nums, function(x){ return x + '' })
    * match each strs == '#regex [0-9].+\\.[0-9]{2}'
    

    【讨论】:

    • 感谢 Peter 的回复,当我使用上面的代码时,我收到错误,因为没有找到与 karate.appendTo(nums, temp) 匹配的步骤定义方法。这里我们使用这种方法将它们添加到数组中,这样理解正确吗?
    • @suvi 是的。请升级到最新版本
    • 好的,确定.. 你能告诉我我们在这里使用 function(x){ return x + '' } 要做的事情吗?这里 x 的值是多少?
    • @suvi 将map 视为一个数组循环以创建另一个数组,x 将传递给定列表或数组中的每个值,阅读文档:github.com/intuit/karate#json-transforms跨度>
    • 感谢彼得的澄清。祝你有美好的一天:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-13
    • 1970-01-01
    • 2011-05-27
    • 2019-12-19
    相关资源
    最近更新 更多