使用 Cypress 测试重定向到新路由
Testing a redirect to a new route with Cypress
我正在使用 Cypress 来测试我的网络应用程序。
此代码段目前有效并将提交新内容:
describe('The Create Page', () => {
it('successfully creates a thing', () => {
cy.visit('/create')
cy.get('input[name=description]').type('Hello World')
cy.get('button#submit')
.click()
// After POST'ing this data via AJAX, the web app then
// receives the id of the new thing that was just created
// and redirects the user to /newthing/:id
// How do I test that this redirection worked?
})
})
如评论所示,我不确定如何测试重定向到新路由是否有效。我可以在浏览器模拟中看到重定向有效,我只是想为它添加一个测试。
谢谢!!!
您需要做的是断言 url 处于预期状态。
Cypress 中有许多命令可用于对 url 进行断言。具体来说,cy.url()
, cy.location()
or cy.hash()
可能会满足您的要求。您的用例的最佳示例可能是:
cy.location('pathname').should('eq', '/newthing/:id')
使用下面的代码找出url而不考虑其他参数
cy.location().should((loc) => {
expect(loc.pathname.toString()).to.contain('/home');
});
我正在使用 Cypress 来测试我的网络应用程序。
此代码段目前有效并将提交新内容:
describe('The Create Page', () => {
it('successfully creates a thing', () => {
cy.visit('/create')
cy.get('input[name=description]').type('Hello World')
cy.get('button#submit')
.click()
// After POST'ing this data via AJAX, the web app then
// receives the id of the new thing that was just created
// and redirects the user to /newthing/:id
// How do I test that this redirection worked?
})
})
如评论所示,我不确定如何测试重定向到新路由是否有效。我可以在浏览器模拟中看到重定向有效,我只是想为它添加一个测试。
谢谢!!!
您需要做的是断言 url 处于预期状态。
Cypress 中有许多命令可用于对 url 进行断言。具体来说,cy.url()
, cy.location()
or cy.hash()
可能会满足您的要求。您的用例的最佳示例可能是:
cy.location('pathname').should('eq', '/newthing/:id')
使用下面的代码找出url而不考虑其他参数
cy.location().should((loc) => {
expect(loc.pathname.toString()).to.contain('/home');
});