赛普拉斯API响应为Array,但断言失败。

问题描述 投票:0回答:1

我目前正在尝试断言一个数组中的项目为真。这就是目前测试的写法。

    it.only('GET getUserPermissions', () => {

        cy.request({
            method: 'get',
            failOnStatusCode: false,
            log: true,
            url: 'https://someurl.org/api/getUserPermissions?=1234',
            headers: {
                //'accept': 'application/json',
                'authorization': 'Bearer ' + login.jwt
            },
            response: []
        }).then((response) => {
            console.log(response.body)
            assert.equal(response.status, 200)
            expect(response.body).to.not.be.null
            console.log(response)
            expect(response.body).to.contain(
                [[[43239,"admin",136,4],[43257,"database.events",165,4],43258,"deadbeat.list",113,4],43266,"navigation",6,4],[43267,"object",19,4],[43272,"qa.object",31,4],43278,"user",5,4]])
        })
    })

我在Cypress runner中得到的响应是这样的。

TEST
1 REQUEST GET 200 https://https://someurl.org/api/getUserPermissions?=1234
2 -ASSERT expected 200 to equal 200  --Pass
3 -ASSERT expected [ Array(7) ] not to be null --Pass
4 -ASSERT expected [ Array(7) ] to include [[[43239,"admin",136,4],[43257,"database.events",165,4],43258,"deadbeat.list",113,4],43266,"navigation",6,4],[43267,"object",19,4],[43272,"qa.object",31,4],43278,"user",5,4]]  --Fails

当我在Postman中测试这个端点时 我只得到了数组[], 但当我在运行器中运行这个时, 断言失败了, 它没有以同样的方式返回数组. 我如何解析响应来检查值?这些都是用户的权限,我需要确保用户对正确的对象有正确的权限。

api chai cypress
1个回答
0
投票

如果你想比较数组中的内容,你可以直接在数组中循环并比较每个值。

如果你有一个原始数组的确切副本来进行比较,你可以对数组进行深度比较。你可以找到一些使用 deep 与赛普拉斯 此处或加柴 此处.

© www.soinside.com 2019 - 2024. All rights reserved.