【模板1:基础正常路径测试】
适用场景:为任意函数生成主流程通过的用例模板内容:
你是一位资深单元测试专家。 请为以下代码/函数生成基础单元测试用例。 要求覆盖正常路径的主要逻辑分支,每个分支至少一个用例。 输入信息:〖粘贴函数签名和核心代码〗。 输出格式: 每个用例包含测试名称、输入数据、预期输出、断言点、准备步骤(如有)。 请不要使用任何特定测试框架的具体语法,只描述测试逻辑。 🌰实例:
输入:“一个运费计算函数,规则:订单金额满88元包邮,否则收10元运费。函数接收订单金额参数,返回运费金额。”
→ AI输出三个测试用例:1)订单金额参数为90 → 预期运费02)订单金额参数为50 → 预期运费103)订单金额参数为0 → 预期运费0
【模板2:边界条件测试】
适用场景:针对数值/集合/字符串的极值情况
模板内容:
你是一位资深单元测试专家。
请为以下函数生成边界条件测试用例。
必须包含:
空值(null或空集合)、零值、最小值、
最大值、负数(如果适用)、超出范围的临界值。
函数信息:〖粘贴函数签名及约束描述〗。
输出每个用例的名称、输入、预期行为(正常返回或异常)。
注意不要依赖任何特定语言的边界常量,
请用“类型最小值/最大值”这种通用描述。
🌰实例:
输入:“一个根据年龄参数返回年龄段的函数,规则:0-12岁返回儿童,13-35岁返回青年,36-60岁返回中年,61岁以上返回老年。”
→ AI输出边界测试用例包括:
年龄参数=0 → 儿童
年龄参数=-1 → 预期异常或特殊处理
年龄参数=12 → 儿童
年龄参数=13 → 青年
年龄参数=120 → 老年
年龄参数=null → 预期异常
其中-1和null触发了原代码的空值和负数未处理问题。
【模板3:异常处理与错误路径】
适用场景:验证函数在非法输入或异常条件下是否按预期抛出错误
模板内容:
你是一位资深单元测试专家。
请为以下函数生成异常处理测试用例。
覆盖场景包括:
传入非法参数、前置状态不满足、依赖资源不可用等。
对每个用例,请说明:输入数据、触发异常的条件、预期的异常类型或错误码、
以及如何验证异常被正确抛出(例如通过捕获并断言错误信息的关键词)。
函数信息:〖粘贴代码或描述〗。
🌰实例:
输入:“一个读取配置文件的函数,接收文件路径参数,根据路径读取并解析配置。要求覆盖异常场景。”
→ AI输出三个异常用例:1)文件路径指向一个不存在的文件 → 预期错误码“FILE_NOT_FOUND”2)文件路径指向一个目录 → 预期报错“IS_A_DIRECTORY”3)文件存在但无读取权限 → 预期报错“PERMISSION_DENIED”
每个用例都说明了如何断言错误信息中包含指定关键词。
【模板4:参数化测试(多组输入输出)】
适用场景:用同一套逻辑批量验证不同数据组合
模板内容:
你是一位资深单元测试专家。
请为以下函数设计参数化测试。
提供至少5组输入-预期输出对,覆盖典型值、边界值和异常值。
输出格式以表格形式:序号、输入参数列表、预期输出、备注。
请不要使用任何特定框架的参数化注解,只描述数据表。
函数信息:〖粘贴函数签名及逻辑简述〗。
🌰实例:
输入:“会员折扣计算函数,规则:普通会员9.5折,黄金会员9折,钻石会员8.5折。函数接收会员等级和原价两个参数,返回折后价。”
→ AI输出参数化表格:1)会员等级=普通,原价=100 → 折后价952)会员等级=黄金,原价=100 → 折后价903)会员等级=钻石,原价=100 → 折后价854)会员等级=黄金,原价=0 → 折后价0(边界)5)会员等级=普通,原价=-10 → 预期异常或按0处理
【模板5:Mock依赖对象/外部服务】
适用场景:函数内部调用外部接口或数据库,需要隔离测试
模板内容:
你是一位资深单元测试专家。
请为以下函数编写依赖隔离的测试用例。
函数依赖一个外部接口(假设叫“依赖服务”),
请设计模拟对象的行为:
1)正常返回场景 2)超时场景 3)返回错误码场景。
在用例中说明:如何创建模拟对象、如何注入到被测函数、
如何验证被测函数在依赖返回不同结果时的行为。
被测函数信息:〖粘贴代码,标注依赖部分〗。
🌰实例:
输入:“一个货币兑换函数,接收金额、来源币种、目标币种参数,内部调用第三方汇率接口获取汇率。要求设计Mock隔离测试。”
→ AI输出三个模拟场景:1)接口正常返回1美元=7.2人民币 → 预期兑换结果正确2)接口超时 → 预期函数降级使用上次缓存汇率3)接口返回HTTP 500 → 预期函数抛出业务异常“汇率服务不可用”
并说明了如何通过依赖注入替换真实接口为模拟对象。
【模板6:测试数据工厂/准备函数】
适用场景:需要大量相似测试数据,避免重复造数据代码
模板内容:
你是一位资深单元测试专家。
请为以下数据模型设计一个测试数据工厂。
工厂应提供方法:
生成默认有效数据、生成自定义字段覆盖的数据、
生成一批列表数据(数量可配置)。
不要使用具体语言的对象创建语法,用自然语言描述数据结构和默认值即可。
数据模型定义:〖粘贴结构描述〗。
🌰实例:
输入:“订单数据模型包含字段:订单号(字符串)、用户ID(字符串)、商品列表(数组,每个商品有名称和价格)、总金额(数字)、状态(枚举:待支付/已支付/已取消)。要求设计测试数据工厂。”
→ AI输出三个方法:1)生成默认订单:订单号用固定前缀加序号,用户ID用默认测试用户,商品列表含一个默认商品(价格100),总金额自动计算,状态为“待支付”2)生成自定义订单:允许调用方传入任意字段覆盖默认值3)批量生成N个订单:自动生成不同订单号,其余字段可配置
【模板7:私有方法测试策略】
适用场景:不直接测试私有方法,而是通过公共接口间接覆盖模板内容:
你是一位资深单元测试专家。 被测函数中存在一个私有辅助逻辑(请提供其行为描述)。
请设计通过公共方法间接覆盖该私有逻辑的测试用例,
要求:
1)说明哪些公共输入会触发私有逻辑
2)给出具体的输入值和断言方式
3)如果无法覆盖,建议如何重构(提取为新的可测试模块)。
私有逻辑描述:〖粘贴行为说明或伪代码〗。
🌰实例:
输入:“订单类有一个私有方法,根据金额和地区计算税费。公共方法是最终结算,总价等于商品总价加上私有方法算出的税费。要求设计测试覆盖私有逻辑。”
→ AI输出:不直接测试私有方法,而是通过公共结算方法间接覆盖。给出三个公共输入:
商品总价100,地区代码“CA”→ 预期结算结果包含税费8元
商品总价0,地区代码“CA”→ 预期税费0
商品总价100,地区代码“TX”(特殊税率)→ 预期税费按TX规则计算
并建议将私有逻辑提取为独立公共函数,便于单独测试。
你是一位资深单元测试专家。 被测函数中存在一个私有辅助逻辑(请提供其行为描述)。
请设计通过公共方法间接覆盖该私有逻辑的测试用例,
要求:
1)说明哪些公共输入会触发私有逻辑
2)给出具体的输入值和断言方式
3)如果无法覆盖,建议如何重构(提取为新的可测试模块)。
私有逻辑描述:〖粘贴行为说明或伪代码〗。
商品总价100,地区代码“CA”→ 预期结算结果包含税费8元
商品总价0,地区代码“CA”→ 预期税费0
商品总价100,地区代码“TX”(特殊税率)→ 预期税费按TX规则计算
【模板8:异步/回调函数测试】
适用场景:函数涉及回调、Promise或异步任务完成后的动作模板内容:
你是一位资深单元测试专家。 请为以下异步函数生成测试用例。
需覆盖:异步操作成功完成、异步操作失败、超时或取消。
对每个用例,描述如何等待异步结果(例如使用超时等待或完成回调),
以及如何断言最终状态或回调参数。
函数信息:〖粘贴异步函数签名和调用方式描述〗。
🌰实例:
输入:“一个文件上传函数,接收文件对象、成功回调、失败回调,异步执行。要求生成测试用例。”
→ AI输出三个用例:1)上传成功 → 模拟上传完成后,断言成功回调被调用,且参数包含“success”2)网络失败 → 模拟上传过程中网络错误,断言失败回调被调用,且错误对象包含“NETWORK_ERROR”3)超时(10秒无响应)→ 模拟长时间无响应,预期应触发超时回调(假设函数支持超时参数)
每个用例都说明了如何等待异步结果(例如使用计时器或信号量)。
你是一位资深单元测试专家。 请为以下异步函数生成测试用例。
需覆盖:异步操作成功完成、异步操作失败、超时或取消。
对每个用例,描述如何等待异步结果(例如使用超时等待或完成回调),
以及如何断言最终状态或回调参数。
函数信息:〖粘贴异步函数签名和调用方式描述〗。
【模板9:测试用例独立性验证】
适用场景:确保每个测试用例不依赖其他用例的执行顺序或共享状态
模板内容:你是一位资深单元测试专家。
现有以下一组测试用例描述(请粘贴)。
请分析这些用例是否存在执行顺序依赖或共享状态污染的风险。
输出:
1)列出可能相互影响的用例对;
2)说明共享了哪些全局或静态数据;
3)给出修复建议(例如每个用例前置重置数据、使用局部变量代替共享变量)。
测试信息:〖粘贴用例描述和被测模块的简要结构〗。
🌰实例:
输入:“一组针对用户会话管理的测试用例:
用例A:创建新会话并设置用户ID
用例B:获取当前会话的用户ID
用例C:销毁当前会话
它们按A→B→C顺序执行时全部通过,但单独执行B时失败。”
→ AI分析输出:问题在于用例之间共享了同一个静态会话对象,用例B执行前没有独立创建会话。
建议修复:1)每个用例前置步骤中重置会话状态(清空或新建)2)或者将公共准备逻辑移到每个用例内部,避免依赖顺序3)或者改为参数化,让每个用例使用独立的会话实例
结论:测试用例不具备独立性,必须重构。
你是一位资深单元测试专家。
现有以下一组测试用例描述(请粘贴)。
请分析这些用例是否存在执行顺序依赖或共享状态污染的风险。
输出:
1)列出可能相互影响的用例对;
2)说明共享了哪些全局或静态数据;
3)给出修复建议(例如每个用例前置重置数据、使用局部变量代替共享变量)。
测试信息:〖粘贴用例描述和被测模块的简要结构〗。
用例A:创建新会话并设置用户ID
用例B:获取当前会话的用户ID
用例C:销毁当前会话
【模板10:并发场景下的单元测试】
适用场景:函数在多个线程/协程同时调用时的安全性验证
模板内容:你是一位资深单元测试专家。
请为以下共享数据的函数设计并发安全测试用例。
要求描述:同时启动N个并发执行者(N至少为5),
每个执行者调用被测函数并记录结果,主线程等待全部完成后,
验证最终数据一致性或不变量未被破坏。
不需要具体线程语法,只需说明并发数量和验证逻辑。
函数信息:〖粘贴函数及共享数据描述〗。
🌰实例:
输入:“一个账户余额扣款函数,初始余额1000。要求设计并发测试验证线程安全性。”
→ AI输出并发模型:1)启动10个并发任务,每个任务扣款1元,全部执行完成后断言最终余额为9902)启动11个并发任务,每个扣款1元,预期第11个任务会失败并返回“余额不足”,最终余额不低于0
并说明如何通过计数器等待所有任务完成,以及如何捕获并断言失败任务的错误信息。
你是一位资深单元测试专家。
请为以下共享数据的函数设计并发安全测试用例。
要求描述:同时启动N个并发执行者(N至少为5),
每个执行者调用被测函数并记录结果,主线程等待全部完成后,
验证最终数据一致性或不变量未被破坏。
不需要具体线程语法,只需说明并发数量和验证逻辑。
函数信息:〖粘贴函数及共享数据描述〗。
【模板11:测试覆盖率与补充建议】
适用场景:已有测试,但想知道哪些分支没测到
模板内容:你是一位资深单元测试专家。
现有以下代码及其已有的测试用例描述(请粘贴)。
请分析当前测试未能覆盖的路径(如:循环边界、异常分支)。
输出:
1)未覆盖分支列表
2)每个分支建议的补充测试输入
3)优先级高低。
代码信息:〖粘贴源代码及已有测试的简述〗。
🌰实例:
输入:“折扣计算函数,逻辑:普通用户满200减20,VIP用户满100减10,生日当天双倍积分。现有5个测试用例覆盖了普通用户满200、不满200、VIP用户满100。未覆盖分支未知。”
→ AI分析输出:未覆盖分支包括:1)VIP用户不满100元(false分支)2)生日当天非VIP用户(双倍积分但折扣不同)3)生日当天VIP用户(组合分支)
优先级:
高优先级补充“生日当天VIP用户满100元”用例
中优先级补充“VIP不满100元”用例
建议输入:VIP用户生日,金额150,预期输出减10且积分为双倍。
你是一位资深单元测试专家。
现有以下代码及其已有的测试用例描述(请粘贴)。
请分析当前测试未能覆盖的路径(如:循环边界、异常分支)。
输出:
1)未覆盖分支列表
2)每个分支建议的补充测试输入
3)优先级高低。
代码信息:〖粘贴源代码及已有测试的简述〗。
高优先级补充“生日当天VIP用户满100元”用例
中优先级补充“VIP不满100元”用例
【模板12:重构后测试用例更新】
适用场景:函数签名或内部逻辑改了,老测试需要同步
模板内容:你是一位资深单元测试专家。
以下是代码重构前后的对比(请提供变化点),以及重构前的测试用例描述。
请生成更新后的测试用例,
要求:
1)保留仍然有效的旧用例
2)删除已失效的用例
3)为新参数或新分支添加额外用例
4)标注每一处修改的原因。
重构信息:〖粘贴重构说明和旧测试描述〗。
🌰实例:
输入:“重构前:运费计算函数接收三个独立参数(重量、距离、是否加急)。重构后:接收一个订单对象参数(包含重量、距离、加急标识,以及新增的‘会员等级’字段)。旧测试有6个用例,分别覆盖不同重量、距离和加急组合。”
→ AI输出更新后用例:1)保留4个旧用例,将参数构造改为构造订单对象,断言不变2)删除1个旧用例(原“距离=0”的边界,新逻辑中距离不再为0)3)新增2个用例:会员等级为‘黄金’时的运费折扣、订单对象为null时的异常处理4)每个修改标注原因(参数合并、新字段引入、废弃分支)
你是一位资深单元测试专家。
以下是代码重构前后的对比(请提供变化点),以及重构前的测试用例描述。
请生成更新后的测试用例,
要求:
1)保留仍然有效的旧用例
2)删除已失效的用例
3)为新参数或新分支添加额外用例
4)标注每一处修改的原因。
重构信息:〖粘贴重构说明和旧测试描述〗。
💡 使用技巧
在【输入信息】里附带代码的核心逻辑说明如果函数命名不够清晰(比如
process、handle这类泛名),在粘贴代码后加一句“这个函数的作用是:根据用户等级和订单金额计算最终折扣”,AI能更准确保留业务语义,避免生成与代码逻辑不符的测试用例。要求AI主动补全你没想到的边界和异常:在任意模板末尾加上“请补充3个我可能遗漏的边界条件或异常场景”,你会发现AI能多列出像“传入null参数”“并发修改共享状态”“依赖接口超时”等你自己容易忽略的情况,至少多覆盖20%的遗漏分支。
用已有测试用例反向生成函数行为描述当你只有一堆旧的测试用例但没有函数文档时,把几个测试用例粘贴给AI,说“请根据这些测试用例,反推函数的输入输出契约和隐含约束”,AI会帮你归纳出函数应该满足的规则,特别适合接手没文档的老代码。
分两步生成,避免测试用例过于泛化先让AI用【模板2】生成边界条件列表,然后挑出其中3-5个你觉得最关键的边界,再告诉AI“请只针对我选出的这3个边界,生成完整的测试用例步骤和断言”,比一次性输出全部用例更详细、更有针对性。
让AI扮演代码审查者角色在提示词开头加一句“假设你是一名有10年经验的测试架构师,现在要审核下面这个函数的测试充分性”,AI会在输出测试用例之外,额外指出“哪些分支看起来风险较高需要额外测”“哪些依赖没有Mock可能影响稳定性”,相当于白嫖一次专家代码审查。
用模板作为测试用例的评审checklist:把你已经写好的单元测试用例喂给AI,然后问“对照【模板5】(Mock依赖)和【模板8】(异步测试)的结构,我当前的测试用例中哪些依赖没隔离、哪些异步场景没覆盖?”AI会逐条对比,帮你发现测试的薄弱环节,当自动化评审员用。
📢 结尾引导
✅ 关注本公众号,后台回复 “模板” 获取完整合集索引(包括代码审查、Bug修复、性能优化等分类)。✅ 文章持续更新,欢迎收藏并分享给需要的队友。✅ 下一期预告:《程序员AI提示词模板:代码重构篇》
让 AI 真正成为你的结对编程伙伴。
夜雨聆风