0

我在 RestAssured 响应规范中写了一个这样的 hamcrest

builder.expectBody("hotelavailabilities.rateplans.rooms.adults", 
    anyOf(
       hasItemInArray(
          anyOf(
             hasItemInArray(
                 anyOf(hasItemInArray(Integer.parseInt(adults))))))));

我想建立一个像上面这样的断言,所以我将 json 输出与这个断言进行比较

但我收到如下错误

java.lang.AssertionError: 1 expectation failed.
JSON path hotelAvailabilities.ratePlans.rooms.adults doesn't match.
Expected: (an array containing (an array containing (an array containing <2>)))
  Actual: [[[2], [2]], [[2]], [[2], [2]], [[2], [2]]]

如何编写 hamcrest 以便覆盖和断言输出?

JSON模式:

在此处输入图像描述

有时房间对象中可能只有一个数组,或者可能有三个但 2 将是常数

4

1 回答 1

0

终于解决了

hasItem(anyOf(hasItems(anyOf(hasItem(Integer.parseInt(adults)))))));

于 2018-04-15T16:05:25.970 回答