即使param的值为null,如何输入参数

时间:2018-03-28 17:46:46

标签: karate

所以我的代码如下:

* def value = newMP.response.data[randomizer].phoneNumber
* def nullvalue = 'null'
* def filter = (value == '#null' ? nullvalue : value)
* print filter
And param filter[phoneNumber] = filter

此代码的结果是 enter image description here

事情是我的应用程序也允许搜索null。因此,我可以根据条件逻辑

查看是否可以放入一个null的过滤器

此外,如果我这样做

And param filter[phoneNumber] = 'null'

空值在GET调用中

2 个答案:

答案 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