赛普拉斯拦截不匹配状态为 204 的路由
Cypress intercept does not match route with status 204
我正在我们的 Angular 应用程序中实施 cypress 测试,但在等待请求完成时遇到问题。我猜这与请求的状态为 204 而不是 200 有关。
这是我在测试中调用的 function/command:
export function logout() {
cy.intercept('/api/security/logout').as('logoutRequest');
cy.getCookie('SESSION').then((cookie) => {
if (cookie != null) {
cy.request(
{
method: 'POST',
url: '/api/security/logout',
}
);
}
});
cy.wait('@logoutRequest');
}
我的问题是,路由 /api/security/logout
未被识别为别名 @logoutRequest
,因此等待总是超时。即使有一个有效的请求。正如您在测试协议中看到的:
我试过用*或**修改路线但没有成功。如果你能帮助我,我会很高兴。
你不能用cy.intercept()
来捕捉cy.request()
。
cy.intercept(), cy.server(), and cy.route()
cy.request() sends requests to actual endpoints, bypassing those defined using cy.route() or cy.intercept()
只需链接 .then()
处理回复的请求
cy.request({method: 'POST', url: '/api/security/logout', failOnStatusCode: false})
.then(response => {
expect(response.status).to.eq(200)
})
我正在我们的 Angular 应用程序中实施 cypress 测试,但在等待请求完成时遇到问题。我猜这与请求的状态为 204 而不是 200 有关。
这是我在测试中调用的 function/command:
export function logout() {
cy.intercept('/api/security/logout').as('logoutRequest');
cy.getCookie('SESSION').then((cookie) => {
if (cookie != null) {
cy.request(
{
method: 'POST',
url: '/api/security/logout',
}
);
}
});
cy.wait('@logoutRequest');
}
我的问题是,路由 /api/security/logout
未被识别为别名 @logoutRequest
,因此等待总是超时。即使有一个有效的请求。正如您在测试协议中看到的:
我试过用*或**修改路线但没有成功。如果你能帮助我,我会很高兴。
你不能用cy.intercept()
来捕捉cy.request()
。
cy.intercept(), cy.server(), and cy.route()
cy.request() sends requests to actual endpoints, bypassing those defined using cy.route() or cy.intercept()
只需链接 .then()
处理回复的请求
cy.request({method: 'POST', url: '/api/security/logout', failOnStatusCode: false})
.then(response => {
expect(response.status).to.eq(200)
})