SOC 직업 분류 기준
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/MisonL/Ling --skill testing-patterns명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SKILL.md 표시 중
| name | testing-patterns |
| description | 测试模式与原则。覆盖 Unit(单元测试)、Integration(集成测试)与 Mock(模拟)策略。 |
| allowed-tools | Read, Write, Edit, Glob, Grep, Bash |
构建可靠测试体系的原则。
/\ E2E(端到端,少量)
/ \ 关键流程
/----\
/ \ Integration(集成测试,中量)
/--------\ API、数据库查询
/ \
/------------\ Unit(单元测试,大量)
函数、类等基础逻辑
| 步骤 | 目的 |
|---|---|
| Arrange(准备) | 准备测试数据与上下文 |
| Act(执行) | 执行被测代码 |
| Assert(断言) | 断言结果是否符合预期 |
| 类型 | 适用场景 | 速度 |
|---|---|---|
| Unit(单元测试) | 纯函数、核心逻辑 | 快(<50ms) |
| Integration(集成测试) | API、数据库、服务协作 | 中 |
| E2E(端到端测试) | 关键用户流程 | 慢 |
| 原则 | 含义 |
|---|---|
| Fast(快速) | 单个用例 < 100ms |
| Isolated(隔离) | 不依赖外部系统 |
| Repeatable(可重复) | 每次结果一致 |
| Self-checking(自校验) | 无需手工验证 |
| Timely(及时) | 与代码同步编写 |
| 应该测试 | 不应测试 |
|---|---|
| 业务逻辑 | 框架内部实现 |
| 边界条件 | 第三方库本身 |
| 错误处理 | 过于简单的 getter(取值器) |
| 领域 | 关注点 |
|---|---|
| API 端点 | 请求/响应链路 |
| 数据库 | 查询与事务行为 |
| 外部服务 | 契约一致性 |
| 阶段 | 动作 |
|---|---|
| Before All(全局前置) | 建立资源连接 |
| Before Each(用例前置) | 重置状态 |
| After Each(用例清理) | 执行清理 |
| After All(全局清理) | 释放连接 |
| 应该 Mock | 不应 Mock |
|---|---|
| 外部 API | 被测代码本身 |
| 数据库(单元测试) | 简单依赖对象 |
| 时间/随机数 | 纯函数 |
| 网络请求 | 内存型替代实现 |
| 类型 | 用途 |
|---|---|
| Stub(桩) | 返回固定值 |
| Spy(监视) | 跟踪调用行为 |
| Mock(模拟) | 预设期望并校验 |
| Fake(伪实现) | 提供简化实现 |
| 模式 | 示例 |
|---|---|
| Should(行为式) | "should return error when..." |
| When(条件式) | "when user not found..." |
| Given-When-Then(前提-条件-结果) | "given X, when Y, then Z" |
| 层级 | 用途 |
|---|---|
| describe(分组) | 归类相关测试 |
| it/test(用例) | 单个测试用例 |
| beforeEach(前置) | 共享初始化逻辑 |
| 方法 | 用途 |
|---|---|
| Factories(工厂) | 动态生成测试数据 |
| Fixtures(夹具) | 预定义数据集 |
| Builders(构建器) | 链式构建对象 |
| 实践 | 目的 |
|---|---|
| 单测关注单一断言目标 | 失败原因更清晰 |
| 用例相互独立 | 避免顺序依赖 |
| 保持测试快速 | 能高频执行 |
| 命名具描述性 | 测试即文档 |
| 严格清理状态 | 避免副作用污染 |
| [FAIL] 禁止(Don't) | [OK] 推荐(Do) |
|---|---|
| 测实现细节 | 测可观察行为 |
| 重复测试代码 | 使用 factories(工厂)复用 |
| 测试前置过于复杂 | 简化或拆分场景 |
| 忽略 flaky(不稳定)测试 | 修复根因 |
| 不做清理 | 重置状态 |
牢记: 测试本身就是文档。如果别人无法通过测试理解代码行为,就应该重写测试。