news 2026/4/18 10:50:24

AI生成测试代码(很干~干货)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
AI生成测试代码(很干~干货)

AI 真的能生成符合项目要求的测试代码吗?答案是肯定的,但前提是你需要掌握正确的方法。经过长期实践,我发现要想让 AI 生成高质量的代码,有几个关键点必须做到位。

关键点一:建立知识库,实时 Embedding 项目代码

为什么知识库如此重要?

AI 生成代码的核心在于"理解"——理解你的项目结构、编码风格、业务逻辑、测试规范等。如果 AI 对这些一无所知,它只能生成通用的、脱离项目实际的代码。

解决方案:建立项目知识库,实时将代码 Embedding 到知识库中

  • 实时性:项目代码在不断迭代,知识库也需要同步更新。只有保持代码库的实时性,AI 才能根据最新的代码模式生成符合当前项目规范的代码。

  • 全面性:不仅要包含测试代码,还要包含业务代码、工具类、配置文件等,让 AI 全面理解项目的技术栈和架构。

  • 结构化:通过 Embedding 技术,将代码转换为向量表示,使得 AI 能够快速检索和理解相关代码片段。

实践建议

定期(建议每天或每次重要更新后)将项目代码同步到知识库,确保 AI 始终基于最新的代码上下文生成代码。

PS:cursor 这样的产品可以自动更新知识库。只要你写代码了,就会自动上传到服务器并进行 embedding

关键点二:良好的上下文管理

上下文限制的挑战

每个 AI 模型都有上下文限制。以 Cursor 为例,即使是最强大的模型,上下文上限也就在 200K token 左右。当对话内容超过这个限制时,早期的上下文就会丢失,AI 会"忘记"你之前的需求、代码逻辑、设计决策等重要信息。

上下文工程的核心策略

  1. 利用 Rules 文件

Cursor 的.cursorrules文件是一个强大的上下文管理工具。你可以把它理解为"系统提示词"——文件中的内容会被自动加入到每次对话的 system prompt 中。

建议做法

  • 将项目的编码规范、测试规范、常用模式写入 rules 文件

  • 定期更新 rules 文件,反映项目的最新规范

  • 为不同模块或领域创建专门的 rules 文件

示例:

  1. 定期总结和摘要

代码摘要:将复杂的代码逻辑通过大模型的摘要功能,总结成文档。这样既保留了关键信息,又大大减少了 token 消耗。

对话摘要:Cursor 支持在对话中将之前的上下文总结摘要。当对话内容过长时,及时使用这个功能,保留核心信息,丢弃冗余内容。

策略调整:根据实际效果,不断调整摘要策略。哪些信息需要保留,哪些可以丢弃,这需要在实际使用中不断优化。

实践建议

  • 建立上下文管理的意识,不要等到 token 超限才想起管理

  • 定期(每完成一个重要功能后)进行摘要和总结

  • 将关键决策和逻辑以文档形式保存,而不是完全依赖对话历史

关键点三:先写模板代码,让 AI 学习

为什么需要模板代码?

虽然 AI 很强大,但它需要"参考"来理解你的具体需求。最有效的方式是:你先写一部分代码作为模板,让 AI 学习你的编码风格、注释规范、测试模式等。

如何写好模板代码?

  1. 良好的注释

代码注释是 AI 理解代码逻辑的重要途径。Cursor 的 Tab 功能(自动生成注释)非常强大,可以帮助你快速生成高质量的注释。

注释要点

  • 说明代码的目的和逻辑

  • 解释关键参数和返回值

  • 标注重要的业务规则和边界条件

  1. 完整的示例

模板代码应该是一个完整的、可运行的示例,而不是片段。这样 AI 能够理解:

  • 完整的代码结构

  • 导入依赖的方式

  • 错误处理的模式

  • 测试断言的方式

实践建议

  • 为每个新的测试场景,先手写一个完整的测试用例作为模板

  • 确保模板代码符合项目规范,注释清晰完整

  • 将模板代码保存到知识库中,供后续参考

关键点四:提供详细的逻辑细节

为什么需要详细描述?

很多人对 AI 代码生成有一个误解:以为说一两句话,AI 就能生成完美的代码。这是不现实的。

如何写好提示词?

测试写一个测试用例时,中文描述经常写几百字,包括:

  • 测试目的:这个用例要验证什么功能

  • 前置条件:需要准备哪些数据、环境

  • 测试步骤:详细的步骤描述,包括每个步骤的输入和预期输出

  • 边界情况:需要覆盖的异常场景

  • 验证点:如何判断测试是否通过

示例

测试用例:验证Agent应用在添加Calculator插件后,能够正确进行数学计算。

前置条件:

  • 创建一个Agent模式的应用

  • 应用已配置Calculator插件

  • 插件配置了结构化输出参数:Code(整数)、Msg(字符串)、Data(对象)

测试步骤:

  1. 在评测端输入问题:"使用Calculator计算100*100"

  2. 验证Calculator插件被正确调用

  3. 验证返回结果包含10000

  4. 验证返回结果为结构化格式,包含Code、Msg、Data字段

  5. 发布应用到用户端

  6. 在用户端输入相同问题,验证功能一致

边界情况:

  • 输入无效的数学表达式

  • 输入超大的数字

  • 插件配置错误的情况

验证点:

  • 插件调用次数为1

  • 返回结果格式正确

  • 计算结果准确

实践建议

  • 不要吝啬文字:详细的描述能换来更准确的代码

  • 结构化描述:使用列表、分段等方式,让描述更清晰

  • 不断优化:根据生成效果,不断改进提示词的写法

工具推荐:为什么选择 Cursor?

经过大量实践和对比,我最推荐的是 Cursor、Codex、Claude 这类产品。目前我主要使用 Cursor,不过可能需要付费。那么我建议小伙伴们,好好想想实时构建知识库和上下文工程的问题,解决不了这两样, AI 生成代码一定是智障的

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 14:46:12

二、HTML标签学习

二、HTML标签学习 1.1.1 标题标签 场景:在新闻和文章的页面中,都离不开标题,用来突出显示文章主题 代码:h系列标签 1级标题 2级标题 3级标题 4级标题 5级标题 6级标题 语义:1~6级标题,重要程度依次递减 特点: 文字都有加粗 文字都有变大,并且从h1 →h6文字逐渐减小 独…

作者头像 李华
网站建设 2026/4/18 8:17:01

python-uniapp微信小程序的科学养宠物日记系统的设计与实现_f6nw4q82

文章目录 系统截图项目技术简介可行性分析主要运用技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式! 系统截图 python-uniapp_f6nw4q82 微信小程序的科学养宠物日记系统的设计与实现 项目技术简介 Pyth…

作者头像 李华
网站建设 2026/4/16 0:43:15

【滑模控制二阶系统固定时间一致性】多智能体系统中基于固定时间收敛滑模面的鲁棒二阶共识研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。 🍎 往期回顾关注个人主页:Matlab科研工作室 🍊个人信条:格物致知,完整Matlab代码获取及仿…

作者头像 李华
网站建设 2026/4/18 8:55:03

APA与TOGAF、VE和RVP

作者简介: 李海峰:安托公司首席业务方案架构师,清华大学精密仪器系博士,在PLM领域深耕20年。 俞戍远:安托公司CTO,副总经理,有丰富的复杂产品研制数字化转型和复杂解决方案架构设计经验。 摘要…

作者头像 李华
网站建设 2026/4/18 8:42:41

[HNCTF 2022 Week1]ret2shellcode

第一次打CTF——PWN篇学习笔记17int __fastcall main(int argc, const char **argv, const char **envp) {char s[256]; // [rsp0h] [rbp-100h] BYREF ​setbuf(stdin, 0);setbuf(stderr, 0);setbuf(stdout, 0);mprotect((void *)((unsigned __int64)&stdout & 0xFFFFF…

作者头像 李华