Nuxt Test Utils v4.0.0 强制要求使用 Vitest v4,将环境设置移至 beforeAll 钩子以实现可靠的 Mock,并引入了对 Mock 导出项的更严格验证。
📝 详细摘要
Nuxt Test Utils v4.0.0 是一个重要的里程碑,它要求使用 Vitest v4,这推动了环境初始化架构的重大转变。最显著的变化是将设置从 setupFiles 移至 beforeAll 钩子,确保在 Nuxt 环境启动之前注册 Mock。这解决了在中间件中拦截组合式函数(composables)的长期问题,但要求开发者将顶层的组合式函数调用移至钩子内部,以避免实例错误。此版本还增强了 mockNuxtImport 以实现更简洁的部分 Mock,解决了 registerEndpoint 中的状态管理漏洞,并对 happy-dom 和 jsdom 等工具实施了更严格的对等依赖版本要求。
💡 主要观点
- 强制升级 Vitest v4 及架构调整。 此版本基于 Vitest v4 构建,需要更改测试环境的初始化方式以及在整个测试套件中应用 Mock 的方式。
beforeAll 钩子。
此更改确保在 Nuxt 启动之前评估 Mock,从而允许在中间件和插件中可靠地拦截组合式函数,尽管这会破坏 describe 块中的顶层组合式函数调用。
mockNuxtImport 改进部分 Mock。
该工具现在将原始实现传递给工厂函数,使开发者能够包装或扩展真实逻辑,而不是从头开始重新创建 Mock。
💬 文章金句
- v4.0.0 中最重要的变化是 Nuxt 的测试环境设置已从 setupFiles 移至 beforeAll 钩子。
- 将设置推迟到 beforeAll 后,Mock 会在 Nuxt 启动之前注册,使得 Mock 行为在整个测试套件中保持一致且可预测。
- 在 describe 块顶层调用 Nuxt 组合式函数的代码……现在会抛出 [nuxt] 实例不可用的错误,因为此时环境尚未初始化。
- Nuxt Test Utils 弥合了两者:它可以在测试环境中启动完整的 Nuxt 应用程序……并挂载带有完整 Nuxt 插件和组合式函数上下文的组件。
📊 文章信息
AI 评分:87
来源:InfoQ
作者:Daniel Curtis
分类:软件编程
语言:英文
阅读时间:3 分钟
字数:597
标签: Nuxt, Vitest, 前端测试, Vue.js, Web 开发