【发布时间】:2021-08-07 21:51:37
【问题描述】:
我有一个 Gatsby 网站。如果我点击了一个不存在的网址,Gatsby 会提供一个 404 页面,但它不会更改网址。
我正在使用 Cypress 测试这个网站。赛普拉斯推荐的在站点内测试导航的方法是使用location,但是在这种情况下,检查导航到的页面的路径名是不可靠的,如果该页面不存在,它仍然会有和它一样的路径名。例如,如果我让 Cypress 到 cy.click() 的链接,其 href 为 /incorrect-url/,并测试它的 pathname,我会通过测试,即使加载的页面是 404 页面,而不是我的页面期待。
我知道我可以测试我所导航到的页面上是否存在我所期望的元素,但我更喜欢一种可靠的方法来了解页面是否为 404d(Gatsby 返回带有 404 状态代码的页面)。
总结一下:
- 检查位置/路径名并不是测试特定页面是否已加载的可靠方法
- 我不想通过检查页面上的元素来进行验证
肯定有办法验证页面加载时是否没有 404 状态代码。
如何可靠地检查导航到的页面不是 404 页面。
【问题讨论】:
标签: testing url http-status-code-404 gatsby cypress