使用 cypress 进行 API 测试时,出现“expected { Object (message, detail) } to have property 'count'”错误

Kru*_*iya 0 rest web-api-testing cypress

我想断言从响应中收到的总数。

这是我的代码:

cy.request({
        method:'GET',
        url:'https://ibis-qa.droicelabs.us/api/practice/orders/?q=&limit=100',
        failOnStatusCode: false,
        headers:{
            accept: "application/json"
        }
    }).then(Response => {
        let body = JSON.parse(JSON.stringify(Response.body))
        cy.log(body)
        expect(body).has.property('count','27')
   })
Run Code Online (Sandbox Code Playgroud)

这是我遇到的错误

在此输入图像描述

响应体

Vis*_*sal 5

请用

expect(body).has.property('count', 27)
Run Code Online (Sandbox Code Playgroud)

因为该值是一个数字

(参见屏幕截图,周围没有引号27


您没有得到您认为应该得到的 JSON 响应。

如果在浏览器中访问该 URL,我会得到这个

{"message":"field required","detail":[{"loc":["header","authorization"],"msg":"field required","type":"value_error.missing"}]}
Run Code Online (Sandbox Code Playgroud)

这是错误消息的屏幕截图中部分显示的内容。

这是服务器的错误响应,这意味着您的请求不正确。

  • 控制台.log(body.count)。这是由于同样的错误,它不会打印任何内容。我认为您可能会收到该错误,因为 API 请求需要登录身份验证。 (2认同)