Playwright page.route() 实现 API 全量 Mock
· 阅读需 4 分钟
在构建 AI Agent 平台时遇到此问题,记录根因与解法。
TL;DR
使用 page.route() 拦截所有 API 请求,返回预定义的 mock 数据。测试不依赖真实后端,可以在任何环境稳定运行,且避免创建/删除数据等副作用。
在构建 AI Agent 平台时遇到此问题,记录根因与解法。
使用 page.route() 拦截所有 API 请求,返回预定义的 mock 数据。测试不依赖真实后端,可以在任何环境稳定运行,且避免创建/删除数据等副作用。
在构建 AI Agent 平台时遇到此问题,记录根因与解法。
使用 Playwright 的 test.extend() 创建自定义 fixture,通过 page.addInitScript() 在页面加载前注入 auth token 到 localStorage。测试用 authenticatedPage 替代 page,自动获得登录状态,无需每个测试重复登录。
在为客户构建 AI Agent SaaS 平台时遇到此问题,记录根因与解法。
E2E 测试不应该依赖真实的 OAuth 登录流程。通过在 useAuth hook 中检测 localStorage 的测试标记,直接注入 mock 认证状态,跳过 Supabase 初始化。同时将 Zustand store 的 loading 默认值改为 false,避免 AuthGuard 卡在无限 spinner。