我正试图用柏树和固定装置在我的next.js应用程序上编写一些测试,该应用程序使用Axios连接到RESTful API。但是我在使用RESTful截取cy.intercept() API时遇到了困难,因为柏树无法跟踪在cy.intercept()中发送的请求,而cy.intercept()只能处理柏树能够跟踪的请求。有什么方法可以帮助我改变来自RESTful API的响应吗?任何包裹也会有帮助。
发布于 2022-01-07 11:12:37
cy.intercept依赖于浏览器中的API来捕获请求。您在Next.js (如getServerSideProps)中的SSR钩子中所做的请求不会在浏览器中发生,因此cy.intercept对它们一无所知。
当涉及到API模拟解决方案时,我是有偏见的,但我仍然鼓励您再次查看MSW。请参阅官方Next.js示例,它支持使用相同请求处理程序的浏览器端和服务器端请求拦截.自述文件还详细介绍了这两种拦截器工作所需的关键步骤。
这种拦截方式将垃圾嵌入到Next.js应用程序中。这意味着,在不重新启动运行时或向测试上下文公开worker/server实例的情况下,您将无法拥有运行时请求处理程序。这对您本身可能不是一个问题,所以您可以忽略这一点,直到您知道这与您的测试设置相关。
https://stackoverflow.com/questions/67615470
复制相似问题