Skip to main content

hello-test

编写测试、创建测试文件、实现测试覆盖、使用 Jest/Vitest/Mocha/pytest 等测试框架,或实践 TDD、修复失败测试时使用。

Source facts

Repository
hellowind777/helloagents
Last source activity
April 29, 2026 at 12:38
Detected SKILL.md language
Chinese
Stars
710
Forks
97

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
hello-test
description
编写测试、创建测试文件、实现测试覆盖、使用 Jest/Vitest/Mocha/pytest 等测试框架,或实践 TDD、修复失败测试时使用。
测试相关代码必须遵循以下规范。 ## 编码前 先列出被测模块的公共接口、关键行为和边界条件,设计测试用例,再写测试代码。 ## TDD 流程(强制) 新功能和 Bug 修复必须遵循红-绿-重构循环: 1. 红 — 写描述期望行为的测试,运行确认失败 2. 绿 — 写最少的代码让测试通过 3. 重构 — 清理代码,保持测试通过 如果测试写完就直接通过了,说明测试没有验证新行为——重新审视测试。 必须按垂直切片推进:一个行为 → 一个失败测试 → 最小实现 → 通过后再进入下一个行为。禁止先批量写完所有测试,再批量写实现。 豁免场景(标记 [-] 说明原因即可): - 纯 UI 样式调整(无逻辑变更) - 配置文件修改 - 文档/注释变更 - 快速原型探索(用户明确要求) 除豁免场景外,没有先写测试 = 不能写实现代码。 ## 覆盖策略 - 核心业务逻辑:单元测试必覆盖 - API 端点:集成测试覆盖主要路径(成功 + 主要失败场景) - 关键用户流程:E2E 测试覆盖 - Bug 修复:先写失败测试,再修复(红-绿验证) ## 测试编写 - 测试通过公共接口验证外部可观察行为,不测试私有函数、内部调用顺序或实现形状 - 测试名描述行为:`should reject expired tokens`,不是 `test token` - AAA 模式:Arrange(准备)→ Act(执行)→ Assert(断言) - 每个测试独立,不依赖执行顺序 - Mock 外部依赖(数据库/API/文件系统),不 mock 被测代码本身;如果必须 mock 内部协作者,先评估接口是否过浅或测试切入点是否错误 ## 边界用例(必须覆盖) - 空值:null / undefined / 空字符串 / 空数组 - 边界值:0、-1、MAX_INT、超长字符串 - 错误路径:无效输入、网络超时、权限不足 - 并发:竞态条件(如果适用) ## 测试质量 - 避免脆弱测试:不依赖时间、随机数、外部服务 - 测试数据用 factory/fixture,不硬编码 - 断言具体值,不只断言"不为空" - 一个测试验证一个行为 - 好测试应能承受内部重构;如果重命名内部函数就导致测试失败,说明测试耦合了实现 ## 交付检查 - [ ] 测试覆盖公共接口和外部行为,不锁定实现细节 - [ ] 核心逻辑有单元测试 - [ ] 测试名描述行为 - [ ] 覆盖了主要边界用例 - [ ] 测试可独立运行
View on GitHub