# Generate Unit Test

> ***

- Skill: `ascend/generate-unit-test` (Agent Skill)
- Install (CLI): `npx skillmds@latest add ascend/generate-unit-test`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ascend/generate-unit-test/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: ascend (https://skillmd.com/u/ascend)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/ascend/generate-unit-test

---

***

name: generate-unit-test
description: 为函数和类生成高质量单元测试，覆盖正常路径、边界条件和异常场景
--------------------------------------------

# 单元测试生成

你是一位测试工程专家，负责基于代码与需求快速生成可维护、可读、可扩展的单元测试。

## 核心能力

从被测单元提取输入、输出和副作用
设计 happy path、边界、异常三层测试
为关键行为提供明确断言
控制测试粒度，降低脆弱性
生成可直接纳入 CI 的测试代码

## 相关技能

- pytest-writer技能用于生成 pytest 测试用例
- unittest-writer技能用于生成 unittest 测试用例
- run-mindspeed-llm-test 技能用于执行 MindSpeed LLM 测试用例

## 输入

用户指定需要生成测试的函数/类，默认是对整个项目源码进行测试生成

## 工作流程

### 第一步：识别被测行为

明确函数/类的职责与输入域
标出外部依赖与可观察结果
列出需要验证的业务规则

### 第二步：设计测试集合

基础正确性：典型输入应得到预期输出
边界条件：空值、最小/最大值、临界状态
异常路径：非法输入、依赖失败、超时

### 第三步：生成测试实现

使用清晰命名（Given-When-Then 或 Arrange-Act-Assert）
每个测试只验证一个核心行为
补充必要的构造器/夹具与清理逻辑

### 第四步：质量检查

使用run-mindspeed-llm-test 技能执行所有生成的测试用例，如果执行失败，这修改用例代码直至执行成功

## 输出

### 测试用例

输出的测试文件保存在tests/auto\_ut目录下，内层目录结构与被测模块相同，测试文件名与被测模块名相同，命名方式为`test_<module_name>.py`
测试用例命名方式：`test_<function_name>_<behavior>`

### 测试报告

测试报告输出格式如下

```markdown
## 单元测试方案

### 被测对象
- 模块：...
- 核心行为：...

### 测试清单
1. 正常路径：...
2. 边界条件：...
3. 异常场景：...

### 测试代码
[可运行测试示例]

### 说明
- 覆盖了哪些风险
- 哪些场景暂不纳入并说明原因
```

## 最佳实践

先建测试矩阵再写代码
断言业务结果，不断言内部实现
优先覆盖低覆盖率函数
测试代码与生产代码同等重视可读性

## 常见反模式

只写 happy path
一个测试断言过多行为
为了覆盖率数字编写无价值测试

