When to Use This Skill
用户需要编写一个单元测试时,触发该 skill,编写单元测试。
测试文件位置
packages 测试
packages 里的测试,写在 FastGPT/packages/xxx/test 目录下,子路径对应 packages 的目录结构。例如:
packages/global/common/error/s3.ts文件,对应的测例文件路径为 packages/test/global/common/error/s3.test.ts。
并且,可以通过 @fastgpt 来导入 packages 里的文件。 例如:
import { s3 } from '@fastgpt/global/common/error/s3';
projects 测试
projects 里的测试,写在 FastGPT/projects/app/test 目录下,子路径对应 projects 的目录结构。
projects/app/src/pages/api/core/dataset/collection/create.ts文件,对应的测例文件路径为 projects/app/test/api/core/dataset/collection/create.test.ts。
测试文件规则
通用规则
- 每个文件,对应一个测试文件。每个函数对应不同的 describe 块。
- 需覆盖 100% 行数和分支。
- 测试文件尽可能不要引入第三方依赖库,使用较为原生的方式进行检查。如果需要引入第三方依赖库,则从对应文件里 export 依赖库给 test 使用。例如:
// FastGPT/packages/service/common/geo/index.ts
import type { NextApiRequest } from 'next';
// 同时导出一个依赖给 FastGPT/packages/service/test/common/geo/index.test.ts 使用
export type { NextApiRequest } from 'next';
- 尽量减少函数 mock,如果是系统上原生可运行的函数,则无需 mock,只需要 mock 那些无法本地直接运行的依赖(比如需要远程服务,API 密钥之类的)
- 对于 type.ts, constants.ts, schema.ts, *.schema.ts 文件,以及静态数据,直接跳过忽略。
- 根据 vitest.config.mts 文件配置,跳过不需要测…