代码之家  ›  专栏  ›  技术社区  ›  Jawad Kalia

如何在param的值为null的情况下输入param

  •  3
  • Jawad Kalia  · 技术社区  · 8 年前

    所以我的代码如下:

    * 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。因此,我正在考虑是否可以根据条件逻辑放入一个空的过滤器

    另外,如果我这样做

    And param filter[phoneNumber] = 'null'
    

    GET调用中存在null值

    2 回复  |  直到 8 年前
        1
  •  2
  •   Peter Thomas    8 年前

    是的,默认情况下,空手道忽略空值参数,这是大多数用户所期望的。

    您还不清楚您期望的是什么,但我猜您需要一个空值的param。

    尝试以下操作:

    And param filter = ''
    

    另请阅读此示例以了解更多想法: https://github.com/intuit/karate/blob/master/karate-demo/src/test/java/demo/search/dynamic-params.feature

        2
  •  1
  •   Jawad Kalia    8 年前

    我需要的是将参数的值作为 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