所以我的代码如下:
* def value = newMP.response.data[randomizer].phoneNumber
* def nullvalue = 'null'
* def filter = (value == '#null' ? nullvalue : value)
* print filter
And param filter[phoneNumber] = filter
事情是我的应用程序也允许搜索null。因此,我可以根据条件逻辑
查看是否可以放入一个null的过滤器此外,如果我这样做
And param filter[phoneNumber] = 'null'
空值在GET调用中
答案 0 :(得分:2)
默认情况下是的,空手道会忽略空值的参数,这是大多数用户所期望的。
你还不清楚你在期待什么,但我猜你需要一个空值的参数。
试试这个:
And param filter = ''
另请阅读此示例以获取更多提示:https://github.com/intuit/karate/blob/master/karate-demo/src/test/java/demo/search/dynamic-params.feature
答案 1 :(得分:1)
我需要的是将参数的值设置为null
或"null"
,并将响应中的值设为null
,而不是字符串形式。以下是它的解决方法。
And def value = newMP.response.data[randomizer].phoneNumber
And eval if (value == null) karate.set('value', 'null')
And param filter[phoneNumber] = value
When method GET
Then status 200
* eval if (value == 'null') karate.set('value', null)
Then match response.data[0].attributes.phoneNumber contains value