放心响应正文验证

Rest Assured response body validation

我有一个与 Rest Assured 中的响应主体验证相关的问题。假设,我有这样一个响应主体 json.

{
    "store": {
        "books_count":3,
        "books": [
            {
                "genre": "fiction",
                "author": {
                    "name": "William",
                    "lastName" : "Evans"
                }
            },
            {
                "genre": "kids",
                "author": {
                    "name": "Eric",
                    "lastName" : "Carle"
                }
            },
            {
                "genre": "science",
                "author": {
                    "name": "Ronald",
                    "lastName" : "Forks"
                }
            }
        ]
    }
}

我需要检查:

  1. 如果图书部分包含儿童类型
  2. 如果一本儿童类型的书的作者姓名为埃里克

第一个断言可以是这样的:

response.body("store.books.genre", hasItem("kids);

但是我需要检查它的作者的名字是不是威廉。有什么方法可以使用 jsonPath?

检查它吗?

我假设我可以进行反序列化(e.x.List,然后得到一个 Author.class 等等...),但是有没有机会用 RestAssured 检查一下。提前致谢!

if a book of kids genre has autor name as Eric

您可以利用 GPath 按条件提取值

.body("store.books.find {it.genre == 'kids'}.author.name", is("Eric");