这是我的测试:
Background:
* url serverUrl
* configure headers = read('classpath:headers.js')
* def getId = function(){ return java.util.UUID.randomUUID() + '' }
Scenario: Create lead
* def req = read('classpath:data/leads.json')
* def fun = function(x, i){ x.id = getId(); return x }
* def updated = karate.map(req.updated, fun)
* def deleted = karate.map(req.deleted, fun)
Given path '/leads'
And request req
When method post
Then status 200
And match $..updated.length() == [3]
是否有可能以某种方式替换这些行
* def fun = function(x, i){ x.id = getId(); return x }
* def updated = karate.map(req.updated, fun)
* def deleted = karate.map(req.deleted, fun)
喜欢
* def fun = function(x, i){ $x..id = getId(); return x }
* def req = karate.map(req, fun)
我们有smth允许json在JS函数中轻松导航吗?
不,JsonPath在JavaScript中不起作用。您可能需要使用karate.map()
进行第二次转换。对于只读的JsonPath,您可以使用karate.jsonPath()
- 但很抱歉,这样的更新是不可能的。