vitest.setup.ts

vitest.setup.ts

基本信息

  • 类型: Vitest 测试框架配置
  • 路径: ./vitest.setup.ts

功能描述

Vitest 测试框架的全局配置文件,设置测试环境、模拟依赖和控制台输出。该文件在每次测试运行前自动加载。

导出内容

  • 无(全局配置,只有副作用)

依赖导入

  • @testing-library/jest-dom - DOM 断言扩展
  • vitest - 测试框架核心

核心配置

控制台输出控制

  • 测试前: 抑制 console.errorconsole.log
  • 测试后: 恢复原始控制台方法
  • 目的: 减少测试噪音,避免错误处理测试的干扰

环境变量模拟

NEXTAUTH_SECRET = "test-secret"
NEXTAUTH_URL = "http://localhost:3000"
DATABASE_URL = "postgresql://test:test@localhost:5432/test"

模块模拟

next/navigation

  • useRouter - 返回模拟的路由方法
  • useSearchParams - 返回空 URLSearchParams
  • usePathname - 返回根路径 "/"
  • 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/ - 测试文件目录
← 返回目录