我正在尝试在我的 SSR next.js 应用程序上使用 cypress 和固定装置编写一些测试,该应用程序使用 Axios 连接到 RESTful API。但我在拦截 RESTful API 时遇到了麻烦cy.intercept()
因为 cypress 无法跟踪 SSR 中发送的请求并且cy.intercept()
仅适用于 cypress 可以跟踪的请求。有什么方法可以帮助我更改来自 RESTful API 的响应吗?任何软件包也会有帮助。
cy.intercept
依赖浏览器内的 API 来捕获请求。您在 Next.js 的 SSR 挂钩中执行的请求(例如getServerSideProps
)在浏览器中不会发生,因此,cy.intercept
对他们一无所知。
我对 API 模拟解决方案有偏见,但我仍然鼓励您再次研究 MSW。请参阅官方 Next.js 示例 https://github.com/vercel/next.js/tree/canary/examples/with-msw,它使用相同的请求处理程序支持浏览器端和服务器端请求拦截。自述文件还详细介绍了两种拦截工作所需的关键步骤。
这种拦截将 MSW 嵌入到 Next.js 应用程序中。这意味着如果不重新启动运行时或公开运行时请求处理程序,您将无法拥有运行时请求处理程序worker
/server
测试上下文的实例。这对您本身来说可能不是问题,因此您可以忽略此提及,直到您知道它与您的测试设置相关。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)