1

我需要在我的存根中使用 if 条件。我知道您可以使用主体模式创建不同的场景,但这在我的情况下不起作用,因为我在有效负载中获得了可变数量的对象,我需要使用 for 循环来检查每个对象。所以我的请求有效负载看起来类似于:

[
   { "todo_id": 1 },
   { "todo_id": null },
   { "todo_id": 3 }
]

我想用todo_id一个响应,并用一个随机整数null响应,所以到目前为止我的响应有效负载是这样的:

"response": {
    "status": 200,
    "body": "[ {{#each (jsonPath request.body '$') as |todo|}}
                  { \"todo_id\":
                      {{#if (todo.todo_id == null) }}
                          1{{randomValue length=1 type='NUMERIC'}}
                      {{else}}
                          {{todo.todo_id}}
                      {{/if}}
                },
            {{/each}} ]"
}

我知道你不能像那样分开身体,但我这样做是为了更容易阅读代码。

所以 for each 循环肯定有效,我试过没有 if 语句,它工作正常。但我无法让 if 语句为我工作。

关于如何实现这样的事情的任何想法?

4

1 回答 1

2

好的,所以我在 Google Group for WireMock 上得到了答案。

显然要比较您应该使用eq运算符的值。

因此,将代码的条件部分更改为如下所示

{{#eq todo.todo_id null}}
    1{{randomValue length=1 type='NUMERIC'}}
{{else}}
    {{todo.todo_id}}
{{/eq}}

解决了这个问题。

于 2020-08-01T13:49:06.607 回答