vitest.setup.ts
基本信息
- 类型: Vitest 测试框架配置
- 路径:
./vitest.setup.ts
功能描述
Vitest 测试框架的全局配置文件,设置测试环境、模拟依赖和控制台输出。该文件在每次测试运行前自动加载。
导出内容
- 无(全局配置,只有副作用)
依赖导入
@testing-library/jest-dom- DOM 断言扩展vitest- 测试框架核心
核心配置
控制台输出控制
- 测试前: 抑制
console.error和console.log - 测试后: 恢复原始控制台方法
- 目的: 减少测试噪音,避免错误处理测试的干扰
环境变量模拟
NEXTAUTH_SECRET = "test-secret"
NEXTAUTH_URL = "http://localhost:3000"
DATABASE_URL = "postgresql://test:test@localhost:5432/test"
模块模拟
next/navigation
useRouter- 返回模拟的路由方法useSearchParams- 返回空 URLSearchParamsusePathname- 返回根路径 "/"useParams- 返回空对象redirect/notFound- mock 函数
next/headers
cookies()- 模拟 Cookie 操作(get/set/delete)headers()- 返回空 Headers 对象
next-intl
useTranslations- 返回键名作为翻译useLocale- 返回 "en"getTranslations- 异步返回翻译函数
@/lib/db (Prisma)
模拟所有主要模型的 CRUD 操作:
user- 用户模型prompt- Prompt 模型category- 分类模型$queryRaw` / `$executeRaw/$transaction
@/lib/config
getConfig- 返回测试配置- 启用注册,空提供商列表
测试最佳实践
- 所有模拟在测试间自动重置
- 使用 vi.fn() 创建的 mock 可以追踪调用
- 数据库操作不会访问真实数据库
相关文件
vitest.config.ts- Vitest 主配置src/tests/- 测试文件目录