赛普拉斯测试断言对期望未定义的对象数组的过滤操作
cypress test asserting a filtering operation on array of objects expecting undefined
我对 API 进行了赛普拉斯测试。当我这样做时
cy.getUnits(u.email)
我期待在响应正文中出现与此类似的 200 OK 响应
{
“units”: [
{
“store: “US_1234567890”,
“role”: “user”,
“email”: “user1@gmail.com”
},
{
“store: “CA_865890X”,
“role”: “admin”,
“email”: “user1@gmail.com”
}
]
}
我希望单位列表不包含下面的单位“u”
const u = {
“store: ” US_56890765",
“role”: “admin”,
“email”: “user1@gmail.com”
}
所以在赛普拉斯,我做到了
cy.getUnits(u.email)
.should(response => expect(response.status).to.equal(200))
.its(‘body’)
.should(units => {
expect(units.length).to.equal(2)
units.filter(
unit =>
unit.email === u.email &&
unit.role === u.role &&
unit.store === u.store,
).should.be.undefined
})
那是行不通的
units.filter(
unit =>
unit.email === u.email &&
unit.role === u.role &&
unit.store === u.store,
).should.be.undefined
我尝试了不同的变体都无济于事。
有人可以帮我找到解决办法吗?
非常感谢您提供的任何帮助。
您想检查过滤后的数组长度
.should(units => {
expect(units.length).to.equal(2)
const filtered = units.filter(unit =>
unit.email === u.email &&
unit.role === u.role &&
unit.store === u.store
)
expect(filtered).to.have.length(0)
})
我对 API 进行了赛普拉斯测试。当我这样做时
cy.getUnits(u.email)
我期待在响应正文中出现与此类似的 200 OK 响应
{
“units”: [
{
“store: “US_1234567890”,
“role”: “user”,
“email”: “user1@gmail.com”
},
{
“store: “CA_865890X”,
“role”: “admin”,
“email”: “user1@gmail.com”
}
]
}
我希望单位列表不包含下面的单位“u”
const u = {
“store: ” US_56890765",
“role”: “admin”,
“email”: “user1@gmail.com”
}
所以在赛普拉斯,我做到了
cy.getUnits(u.email)
.should(response => expect(response.status).to.equal(200))
.its(‘body’)
.should(units => {
expect(units.length).to.equal(2)
units.filter(
unit =>
unit.email === u.email &&
unit.role === u.role &&
unit.store === u.store,
).should.be.undefined
})
那是行不通的
units.filter(
unit =>
unit.email === u.email &&
unit.role === u.role &&
unit.store === u.store,
).should.be.undefined
我尝试了不同的变体都无济于事。
有人可以帮我找到解决办法吗?
非常感谢您提供的任何帮助。
您想检查过滤后的数组长度
.should(units => {
expect(units.length).to.equal(2)
const filtered = units.filter(unit =>
unit.email === u.email &&
unit.role === u.role &&
unit.store === u.store
)
expect(filtered).to.have.length(0)
})