【问题标题】:How to assert that a property in body has only a few predefined values如何断言 body 中的属性只有几个预定义的值
【发布时间】:2021-12-27 11:42:40
【问题描述】:

Json 正文:

{
  "result": [
    {
      "object": {
        "type": "mattress"
      }
    },
    {
      "object": {
        "type": "pillow"
      }
    }
  ]
}

我如何使用 rest-assured body 和 hamcrest 断言断言该类型只是枕头或床垫(可能还有更多,所以我正在寻找一个通用的解决方案)?

示例断言:

response.then().assertThat().body("result", hasSize(greaterThan(0)));

【问题讨论】:

标签: java testing rest-assured hamcrest web-api-testing


【解决方案1】:

这段代码可以解决你的问题:

.body("result.object.type",  everyItem(isOneOf("mattress", "pillow")));

【讨论】:

  • 有没有办法用列表来做到这一点?正如我所说,可以有更多类型,所以我创建了一个列表,类型可以是列表中的任何一项。由于某种原因,这不起作用: response.then().assertThat().body("result.object.type", everyItem(is(oneOf(types)))) // 其中 types 是字符串列表跨度>
  • 我将列表转换为数组并且它有效。谢谢。一个旁注 isOneOf 被标记为已弃用,应该使用 is(oneOf())。
  • @MarijKhan 感谢您的留言。我已经用 1.3 版测试过
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-04
  • 2019-09-11
  • 2015-07-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多