【问题标题】:Karate DSL blank response passes tests空手道 DSL 空白响应通过测试
【发布时间】:2019-02-28 20:03:21
【问题描述】:

我有点困惑为什么我的测试通过了。我正在对我认为响应应该返回的内容做一些断言。我得到一个成功的 200 状态和一个空响应。以下所有断言都通过了:

    When method get
    * print response
    Then status 200
    And match response == '#notnull'
    And match each $[*] == { caption : '#string' }
    And match each $[*] contains { source : '#object' }
    And match each $[*].source contains {channels : '#present' }
    And match each $[*] contains { post : '#object' }

测试输出:

12:59:30.258 [main] INFO  com.dataminr.karate - [print] [
]

1 Scenarios (1 passed)
14 Steps (14 passed)
0m2.539s

【问题讨论】:

    标签: rest cucumber karate


    【解决方案1】:

    match each 将始终传递一个空数组。把它想象成乘以 0。

    只需添加这个:

    And match response != []
    

    或:

    And match response != '#[0]'
    

    【讨论】:

    • 欣赏它,彼得。我确实添加了对 And match response != [] 的检查以在我的情况下修复它,您是否看到任何问题,或者您提供的断言更可靠?
    • 只是想确保它是正确的,以防其他人突然出现。但我认为在其他断言之前应该是And match response != '#[0]'?正如你所描述的那样,它也会通过,我想在它每一个都击中比赛之前抓住它。
    猜你喜欢
    • 1970-01-01
    • 2022-10-21
    • 1970-01-01
    • 1970-01-01
    • 2019-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多