比如你的项目是一个典型的Java (Spring Boot) Vue3的前后端分离项目。为了让 AI无论是我、ChatGPT 还是其他代码模型生成高质量的测试代码你需要提供具体的上下文。AI 不能凭空猜你的数据库字段或接口参数。以下是为你定制的Prompt 模板你可以直接复制使用。为了获得最佳效果建议你分模块、分文件地向 AI 提问而不是一次性丢给它整个项目。 通用 Prompt 结构万能公式无论你让 AI 写哪种测试Prompt 最好包含以下 4 个要素角色设定告诉 AI 它是谁。上下文提供代码或文档片段你已经上传了文档这很好。具体任务明确要生成什么。输出要求指定格式如 JUnit 5、Mockito、JSON 等。 场景一生成后端单元测试 (Java)适用对象你的Service层逻辑比如CertificateTimeRangeFilterService时间筛选逻辑或CertificateGradeService等级比较逻辑。你的输入复制粘贴具体的 Java 类或方法代码。使用的 Prompt角色你是一个资深的 Java 架构师擅长编写高质量的单元测试。上下文这是一个 Spring Boot 项目中的证书管理模块。这是CertificateGradeService的代码或者粘贴具体的代码片段java编辑1// 在这里粘贴你的 Java 代码例如 2public enum CertificateGrade { ... } 3public int compareCertificateGrades(String grade1, String grade2) { ... }任务请为这个类/方法生成 JUnit 5 单元测试用例。要求使用ExtendWith(MockitoExtension.class)。覆盖所有分支逻辑例如grade1 为空、grade2 为空、正常比较。使用ParameterizedTest和ValueSource/CsvSource来测试多种输入组合。对于枚举类测试所有枚举值的优先级排序是否正确。断言要具体使用assertEquals,assertTrue等。 场景二生成后端接口测试用例 (API Testing)适用对象你的Controller层接口比如/project/certificate/list。你的输入提供 API 的定义或文档描述。使用的 Prompt角色你是一个专业的后端测试工程师。上下文这是一个证书管理系统的 API 接口文档接口GET /project/certificate/list功能分页查询证书列表支持按名称、类型、等级、时间范围筛选。参数pageNum,pageSize,certificateName(模糊查询),certificateType,dateFilterType(GENERAL/PATENT),validStartDate,validEndDate。任务请设计一份详细的接口测试用例表并生成对应的 JSON 格式的请求示例。要求正常场景参数完整查询有效数据。边界值分析pageNum 0 或负数预期默认为1pageSize 1最小页或 1000最大页时间范围开始时间等于结束时间。异常场景必填参数缺失如不传 pageNum。参数类型错误如传字符串给 pageNum。时间格式错误。输出格式Markdown 表格包含“用例描述”、“请求参数”、“预期状态码”、“预期响应”。 场景三生成前端单元测试 (Vue.js)适用对象你的 Vue 组件逻辑比如index.vue中的calculateTableHeight或getDateFieldValue方法。你的输入复制粘贴script setup中的关键逻辑。使用的 Prompt角色你是一个前端测试专家精通 Vue Test Utils 和 Jest。上下文这是一个 Vue3 Element Plus 的证书管理页面组件。这是script setup中的逻辑片段javascript编辑1// 在这里粘贴你的 JS 逻辑例如 2const getDateFieldValue (row) { ... } 3const calculateTableHeight () { ... }任务请为这些函数/组件逻辑生成单元测试。要求使用 Jest 框架。模拟window.innerHeight的不同值例如 800px, 600px测试calculateTableHeight是否正确计算了减去预留高度后的值。测试getDateFieldValue在不同queryParams.value.dateFilterTypePATENT, SOFTWARE_COPYRIGHT, GENERAL下的返回值是否正确。使用describe和test块组织代码。 给你的特别建议基于你的文档根据你的《证书管理模块开发方案》有几个逻辑复杂点特别适合让 AI 帮你写测试因为这些地方容易出 Bug时间字段的动态筛选逻辑代码位置CertificateTimeRangeFilterService中的getEffectiveDateField。提示词重点请生成测试用例验证当dateFilterType为PATENT时SQL 条件是否正确指向authorization_announce_date字段当为GENERAL时是否指向expiry_date。证书等级的智能匹配代码位置CertificateGradeService中的intelligentMatchGrade。提示词重点请生成测试数据输入包含“国家”、“national”、“国”、“省”、“市”等关键词的字符串验证是否能正确匹配到NATIONAL或PROVINCIAL枚举。文件类型验证代码位置validateCertificateFile。提示词重点请生成边界测试用例例如上传.exe文件预期拒绝、超大尺寸文件预期拒绝、以及正常的.pdf和.jpg预期通过。
如何让AI生成项目的单元测试,propmt技巧详解
发布时间:2026/6/2 1:25:08
比如你的项目是一个典型的Java (Spring Boot) Vue3的前后端分离项目。为了让 AI无论是我、ChatGPT 还是其他代码模型生成高质量的测试代码你需要提供具体的上下文。AI 不能凭空猜你的数据库字段或接口参数。以下是为你定制的Prompt 模板你可以直接复制使用。为了获得最佳效果建议你分模块、分文件地向 AI 提问而不是一次性丢给它整个项目。 通用 Prompt 结构万能公式无论你让 AI 写哪种测试Prompt 最好包含以下 4 个要素角色设定告诉 AI 它是谁。上下文提供代码或文档片段你已经上传了文档这很好。具体任务明确要生成什么。输出要求指定格式如 JUnit 5、Mockito、JSON 等。 场景一生成后端单元测试 (Java)适用对象你的Service层逻辑比如CertificateTimeRangeFilterService时间筛选逻辑或CertificateGradeService等级比较逻辑。你的输入复制粘贴具体的 Java 类或方法代码。使用的 Prompt角色你是一个资深的 Java 架构师擅长编写高质量的单元测试。上下文这是一个 Spring Boot 项目中的证书管理模块。这是CertificateGradeService的代码或者粘贴具体的代码片段java编辑1// 在这里粘贴你的 Java 代码例如 2public enum CertificateGrade { ... } 3public int compareCertificateGrades(String grade1, String grade2) { ... }任务请为这个类/方法生成 JUnit 5 单元测试用例。要求使用ExtendWith(MockitoExtension.class)。覆盖所有分支逻辑例如grade1 为空、grade2 为空、正常比较。使用ParameterizedTest和ValueSource/CsvSource来测试多种输入组合。对于枚举类测试所有枚举值的优先级排序是否正确。断言要具体使用assertEquals,assertTrue等。 场景二生成后端接口测试用例 (API Testing)适用对象你的Controller层接口比如/project/certificate/list。你的输入提供 API 的定义或文档描述。使用的 Prompt角色你是一个专业的后端测试工程师。上下文这是一个证书管理系统的 API 接口文档接口GET /project/certificate/list功能分页查询证书列表支持按名称、类型、等级、时间范围筛选。参数pageNum,pageSize,certificateName(模糊查询),certificateType,dateFilterType(GENERAL/PATENT),validStartDate,validEndDate。任务请设计一份详细的接口测试用例表并生成对应的 JSON 格式的请求示例。要求正常场景参数完整查询有效数据。边界值分析pageNum 0 或负数预期默认为1pageSize 1最小页或 1000最大页时间范围开始时间等于结束时间。异常场景必填参数缺失如不传 pageNum。参数类型错误如传字符串给 pageNum。时间格式错误。输出格式Markdown 表格包含“用例描述”、“请求参数”、“预期状态码”、“预期响应”。 场景三生成前端单元测试 (Vue.js)适用对象你的 Vue 组件逻辑比如index.vue中的calculateTableHeight或getDateFieldValue方法。你的输入复制粘贴script setup中的关键逻辑。使用的 Prompt角色你是一个前端测试专家精通 Vue Test Utils 和 Jest。上下文这是一个 Vue3 Element Plus 的证书管理页面组件。这是script setup中的逻辑片段javascript编辑1// 在这里粘贴你的 JS 逻辑例如 2const getDateFieldValue (row) { ... } 3const calculateTableHeight () { ... }任务请为这些函数/组件逻辑生成单元测试。要求使用 Jest 框架。模拟window.innerHeight的不同值例如 800px, 600px测试calculateTableHeight是否正确计算了减去预留高度后的值。测试getDateFieldValue在不同queryParams.value.dateFilterTypePATENT, SOFTWARE_COPYRIGHT, GENERAL下的返回值是否正确。使用describe和test块组织代码。 给你的特别建议基于你的文档根据你的《证书管理模块开发方案》有几个逻辑复杂点特别适合让 AI 帮你写测试因为这些地方容易出 Bug时间字段的动态筛选逻辑代码位置CertificateTimeRangeFilterService中的getEffectiveDateField。提示词重点请生成测试用例验证当dateFilterType为PATENT时SQL 条件是否正确指向authorization_announce_date字段当为GENERAL时是否指向expiry_date。证书等级的智能匹配代码位置CertificateGradeService中的intelligentMatchGrade。提示词重点请生成测试数据输入包含“国家”、“national”、“国”、“省”、“市”等关键词的字符串验证是否能正确匹配到NATIONAL或PROVINCIAL枚举。文件类型验证代码位置validateCertificateFile。提示词重点请生成边界测试用例例如上传.exe文件预期拒绝、超大尺寸文件预期拒绝、以及正常的.pdf和.jpg预期通过。