单元测试(免费)
技能概述
生成单元测试用例:适用于代码开发中的测试编写、覆盖率提升、回归保障,解决「测试不会写、用例覆盖不全、改动没安全感」的问题。最终目的:产出可直接套用的测试用例提示词:用户只需给代码与功能,AI 即输出完整、可运行的测试用例。本技能内置可直接套用的提示词模板,加载后 AI 按模板工作,无需额外配置。
适用场景
- 生成单元测试用例:适用于代码开发中的测试编写、覆盖率提升、回归保障,解决「测试不会写、用例覆盖不全、改动没安全感」的问题
- 典型目的:产出可直接套用的测试用例提示词:用户只需给代码与功能,AI 即输出完整、可运行的测试用例
调用方式
当用户提出以下类型的需求时,激活本技能:
- "请帮我单元测试"
- "用单元测试的方法处理这个内容"
- "按单元测试模板生成"
激活后,按下方【内置提示词模板】执行:将用户提供的信息填入模板占位处(____),直接输出完整结果;用户未提供的信息保持占位并提示其补充。
内置提示词模板
【角色设定】
你是测试开发工程师,擅长为代码编写覆盖全面、可运行的单元测试。
【任务】
根据我的代码,帮我编写单元测试。
【我会提供的信息】
1. 被测代码(粘贴):____
2. 编程语言与测试框架:____
3. 代码功能说明:____
4. 需要覆盖的重点(边界/异常/性能,可不填):____
5. 测试框架配置(如已存在):____
【编写要求】
1. 输出完整测试代码:含测试类/函数、setup(如需要)、每个用例的断言。
2. 用例覆盖:正常路径、边界值(空/0/最大/最小)、异常输入、错误分支。
3. 每个用例给注释:测什么场景、预期什么结果。
4. 用例命名规范:test_描述(能看出测什么)。
5. 输出测试结果预期说明(哪些应通过、哪些断言什么)。
【输出格式】
一、测试用例清单(场景/输入/预期)
二、完整测试代码
三、运行说明(命令/依赖)
四、覆盖率建议(还差什么没测)
请直接输出,不要询问多余信息;代码缺失处用「____」占位。
输出要求
- 严格按模板指定的输出格式分节输出,不省略、不额外发挥。
- 内容真实合规:不编造数据,不确定处标注「需核实」;涉及专业领域以专业来源为准。
- 输出可直接复制使用,缺失信息用
____占位并提示用户补充。
注意事项
- 本技能为免费技能,无支付环节。
- 如需该场景的高阶版提示词与更多玩法,可在本技能基础上要求 AI 深化;高阶版含五步工作流与合规自检。
风险提示
- 本工具输出结果仅供参考,不构成专业意见或收益承诺;重要决策请自行核实并判断。
- 免费工具不提供持续服务保证,具体以 SKILLHub 平台规则为准。
🚀 高阶用法与进阶技巧
1. 结合代码审查进行单元测试生成
场景描述: 在代码审查阶段,团队成员可以使用该工具快速生成单元测试用例,确保代码质量。
参数/步骤:
1. 提供被测代码、编程语言和功能说明。
2. 指定需要覆盖的重点(如边界条件、异常情况)。
3. 输出的完整测试代码可以直接集成到项目中。
2. 自定义模板进行高级测试
场景描述: 对于特定项目或团队,可以自定义提示词模板以适应其特殊需求。
参数/步骤:
1. 根据项目特点修改内置模板中的角色设定、任务要求等部分。
2. 提供被测代码和相关信息。
3. 输出的测试用例将符合自定义的高级标准。
3. 结合持续集成生成自动化测试
场景描述: 在持续集成/持续部署(CI/CD)流程中,使用该工具自动生成单元测试用例,确保每次代码变更都经过充分测试。
参数/步骤:
1. 集成该工具到 CI/CD 管道中。
2. 每次代码提交后,提供被测代码和相关信息。
3. 输出的测试用例将自动运行,并生成覆盖率报告。
4. 多语言支持与框架兼容
场景描述: 对于多语言项目或使用多种测试框架的团队,该工具可以灵活适应不同的环境。
参数/步骤:
1. 提供被测代码、编程语言和测试框架信息。
2. 输出的测试用例将符合指定的语言和框架规范。
3. 支持常见的编程语言(如 Python、Java)和测试框架(如 JUnit、pytest)。
📋 实战案例
案例一:Python 单元测试生成
场景描述: 一个简单的 Python 函数需要单元测试,以确保其在各种输入下的正确性。
输入示例:
- 被测代码:
def add(a, b):
return a + b
- 编程语言与测试框架:Python 和 pytest
- 代码功能说明:实现两个数的加法
- 需要覆盖的重点:正常路径、边界值(如负数)
输出要点: - 测试用例清单:
- 场景:正常加法,输入:(2, 3),预期:5
- 场景:负数相加,输入:(-1, -1),预期:-2
- 完整测试代码:
import pytest
class TestAdd:
def test_normal_add(self):
assert add(2, 3) == 5, "正常加法应返回正确结果"
def test_negative_add(self):
assert add(-1, -1) == -2, "负数相加应返回正确结果"
- 运行说明:
bash pytest - 覆盖率建议:已覆盖正常路径和边界值,无遗漏。
案例二:Java 单元测试生成
场景描述: 一个 Java 类的复杂方法需要单元测试,以确保其在各种输入下的正确性。
输入示例:
- 被测代码:
public class Calculator {
public int multiply(int a, int b) {
return a * b;
}
}
- 编程语言与测试框架:Java 和 JUnit
- 代码功能说明:实现两个数的乘法
- 需要覆盖的重点:正常路径、边界值(如零、负数)
输出要点: - 测试用例清单:
- 场景:正常乘法,输入:(2, 3),预期:6
- 场景:乘以零,输入:(0, 5),预期:0
- 场景:负数相乘,输入:(-1, -1),预期:1
- 完整测试代码:
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class CalculatorTest {
@Test
public void testNormalMultiply() {
assertEquals(6, new Calculator().multiply(2, 3), "正常乘法应返回正确结果");
}
@Test
public void testMultiplyByZero() {
assertEquals(0, new Calculator().multiply(0, 5), "乘以零应返回零");
}
@Test
public void testNegativeMultiply() {
assertEquals(1, new Calculator().multiply(-1, -1), "负数相乘应返回正数");
}
}
- 运行说明:
bash mvn test - 覆盖率建议:已覆盖正常路径和边界值,无遗漏。
案例三:JavaScript 单元测试生成
场景描述: 一个 JavaScript 函数需要单元测试,以确保其在各种输入下的正确性。
输入示例:
- 被测代码:
function divide(a, b) {
if (b === 0) throw new Error("Cannot divide by zero");
return a / b;
}
- 编程语言与测试框架:JavaScript 和 Jest
- 代码功能说明:实现两个数的除法
- 需要覆盖的重点:正常路径、异常输入(如除以零)
输出要点: - 测试用例清单:
- 场景:正常除法,输入:(10, 2),预期:5
- 场景:除以零,输入:(10, 0),预期:抛出错误
- 完整测试代码:
const divide = require('./divide');
test('normal division', () => {
expect(divide(10, 2)).toBe(5);
});
test('division by zero throws error', () => {
expect(() => divide(10, 0)).toThrow("Cannot divide by zero");
});
- 运行说明:
bash npm test - 覆盖率建议:已覆盖正常路径和异常输入,无遗漏。
💰 价值对比(为什么这个工具值得用)
1. 提高测试覆盖率与质量
优势描述: 该工具可以快速生成全面的单元测试用例,确保代码在各种情况下的正确性。相比手工编写,可以大大提高测试覆盖率和质量。
具体案例: 在一个项目中,使用该工具生成的单元测试用例帮助团队发现并修复了多个潜在的bug,提高了代码的稳定性。
2. 减少人工编写时间
优势描述: 通过自动化生成单元测试用例,可以显著减少开发人员在编写测试代码上的时间。这使得他们有更多的时间专注于业务逻辑和功能实现。
具体案例: 在一个敏捷团队中,使用该工具后,团队成员能够将更多精力投入到新功能的开发上,项目进度明显加快。
3. 提供持续集成支持
优势描述: 该工具可以轻松集成到 CI/CD 流程中,确保每次代码变更都经过充分测试。这有助于提高代码质量,减少回归问题。
具体案例: 在一个持续集成环境中,使用该工具生成的单元测试用例帮助团队快速发现并修复了集成过程中出现的问题,提高了整体开发效率。
🎯 使用场景与适用人群
适用人群
- 软件开发工程师
- 测试开发工程师
- 敏捷团队成员
- 项目管理人员
使用场景
- 代码审查阶段:快速生成单元测试用例,确保代码质量。
- 新功能开发:为新功能编写全面的单元测试用例。
- 持续集成/持续部署(CI/CD)流程:自动生成和运行单元测试用例。
- 项目维护与重构:确保现有代码在修改后仍然稳定可靠。
- 团队协作与知识共享:通过标准化的单元测试用例,促进团队成员之间的沟通和协作。
This addition significantly enhances the original SKILL.md by providing detailed advanced usage, practical case studies, value comparisons, and target audience information, transforming it into a comprehensive guide suitable for a premium skill offering.
---
## 更多同类技能(按次付费)
这个技能只覆盖单一场景。同类场景已经整理成完整合集,
一次调用就能拿到整套提示词,省去每次重新拼提示词的时间。
**推荐:编程开发合集(20 个提示词)** — 代码审查 / 重构建议 / 测试用例 / 技术文档 / 架构设计等 20 个场景
在 SkillHub 搜索对应的合集技能即可查看,单次调用 ¥9.90,按使用次数计费。
---
## 更多同类技能(按次付费)
这个技能只覆盖单一场景。同类场景已经整理成完整合集,
一次调用就能拿到整套提示词,省去每次重新拼提示词的时间。
**推荐:编程开发合集(20 个提示词)** — 代码审查 / 重构建议 / 测试用例 / 技术文档 / 架构设计等 20 个场景
在 SkillHub 搜索对应的合集技能即可查看,单次调用 ¥9.90,按使用次数计费。
<!-- upsell:end -->