ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

test-guard - jest

test-guard - jest Test Guard — JavaScript / TypeScript / Jest / Vitest 模式九条规则在 JS/TS 项目中的具体应用。在审查或编写 Jest 或 Vitest 测试时阅读此文件。规则 2JS/TS 中的 mock 边界有理由的 mock 目标网络优先使用mswMock Service Worker而不是用jest.mock模拟你自己的 fetch 封装——它在真正的边界进行 mockLLM / 第三方 SDK 客户端openai、anthropic-ai/sdk、Stripe 等计时器和随机性vi.useFakeTimers()/jest.useFakeTimers()、带种子的 RNGNode 代码中的文件系统和进程环境无理由的 mockjest.mock(../utils/helpers)— 模拟你自己的内部模块来隔离一个单元规则 2通过原型修补模拟类的私有方法规则 1当存在真实构造函数或工厂时手工构建假装是领域实体的对象字面量规则 8规则 3test.each// Violation: three near-identical it() blocks// Fix:test.each([[Hello World,hello-world],[ padded ,padded],[Café Menu,cafe-menu],])(slugify(%s) → %s,(raw,expected){expect(slugify(raw)).toBe(expected);});快照纪律除非快照就是契约例如公共 JSON 输出、CLI 的帮助文本否则快照测试是伪装的实现测试。避免对以下内容做快照每次样式调整都会变化的完整组件树规则 1 — 脆弱断言实现没人审查的大型对象——未阅读的快照等于自己批准自己规则 4优先使用针对性断言expect(screen.getByRole(button)).toHaveTextContent(Save)。UI 组件测试测试用户看到和操作的内容按角色/标签的 Testing Library 查询而不是组件内部或状态钩子规则 1。不要测试 React 会渲染、路由会解析或 props 会传播——这些是框架保证规则 7。规则 9真实持久化对于数据层逻辑Prisma/Drizzle/Knex 查询针对真实测试数据库运行——testcontainers、Docker 化的 Postgres或兼容时的 SQLite。Mock 查询构建器来测试查询构建器什么都测不到。
返回列表