Cypress with NextJS SSR-使用Axios截取RESTful API



我正在尝试在我的SSR next.js应用程序上使用Cybers和fixture编写一些测试,该应用程序使用Axios连接到RESTful API。但我在使用cy.intercept()拦截RESTful API时遇到了问题,因为Cypry无法跟踪在SSR中发送的请求,而cy.intercept()只能处理Cypry可以跟踪的请求。有没有什么方法可以帮助我改变来自RESTful API的响应?任何一揽子计划也会有所帮助。

cy.intercept依赖于浏览器内API来捕获请求。您在Next.js中的SSR挂钩中所做的请求(如getServerSideProps(不会在浏览器中发生,因此cy.intercept对它们一无所知。

当谈到API嘲笑解决方案时,我有偏见,但我仍然鼓励您再次研究MSW。请参阅官方的Next.js示例,该示例使用相同的请求处理程序支持浏览器端和服务器端的请求拦截。README还详细介绍了两个拦截工作所需的关键步骤。

这种拦截将MSW嵌入到Next.js应用程序中。这意味着,如果不重新启动运行时或将worker/server实例暴露给测试上下文,就无法拥有运行时请求处理程序。这对你来说可能不是一个问题,所以你可以忽略这一点,直到你知道它与你的测试设置相关。

最新更新