typescript - 在 Cypress 中创建包含断言/链式命令的自定义命令
我希望创建一个包含状态码断言的自定义命令:
cy.wait('@interceptedEndpoint')
.its('response.statusCode')
.should('eq', 200)
最后两行是我想放在自定义命令里的内容
.its('response.statusCode')
.should('eq', 200)
我最初的想法如下,但显然行不通
Cypress.commands.add('checkResponse', {prevSubject: 'element'}, () => {
.its('response.statusCode')
.should('eq', 200)
})
我在上面缺少什么才能使自定义命令创建正确?
编辑:除了Udo.Kier的回答之外,我还需要将prevSubject设置为true,以使其接受预期断言的响应。
答案#1
你可以尝试添加 subject 参数,
Cypress.commands.add('checkResponse', {prevSubject: true}, (subject) => {
cy.wrap(subject)
.its('response.statusCode')
.should('eq', 200)
})
...
cy.wait('@interceptedEndpoint').checkResponse()
或者,在自定义命令内部等待时:
Cypress.commandsCommands.add('waitAndCheckResponse', (subjectAlias) => {
cy.wait(subjectAlias)
.its('response.statusCode')
.should('eq', 200);
})
...
cy.waitAndCheckResponse('@interceptedEndpoint')
