给现有方法补测试,JetBrains AI Assistant 先把结果放进 Diff

新工具猫目发布于 来源:JetBrains AI Assistant 官方资料
生成入口就在代码旁边,测试放到哪里、用哪个测试框架,也与当前项目衔接。

为什么值得关注

把现有方法转为可编辑的测试草稿,并根据已有测试文件和项目默认runner接续,而非另起一套样板。

适合谁:使用JetBrains IDE、准备为已有业务代码补单元测试的开发者

这次有哪些亮点

  • 从方法或类调用生成测试,先进入AI Diff
  • 能添加到已有测试文件,PyCharm沿用默认测试runner

使用前需要知道

功能和可用配置随IDE而异;模型接入可走订阅或自带凭据等方式,生成测试需核对断言并在项目中实际运行。

业务代码已经能跑,却一直缺几组单元测试。最容易拖住人的第一步,是把被测方法、依赖和测试文件重新凑成一段提示词。JetBrains AI Assistant 的测试生成功能,把这个起点放回了代码旁边:在类或方法处调用生成,让测试先以一份差异稿出现。

它值得介绍的地方,不只是能写测试代码,还在于这份代码怎样进入已有项目。下面按官方测试文档的流程看,重点是得到一份能继续修的测试,而不是承诺一次生成就完成覆盖。

从被测方法开始,先看差异

把光标放在类或具体方法中,通过右键菜单或 Alt+Enter,进入 AI Actions,再选择 Generate Unit Tests。结果会打开在独立 AI Diff 标签页里。这里先呈现候选修改,你可以读断言、看依赖,再决定是否保存。

例如,一个计算订单折扣的方法,正常输入容易想到,临界金额和缺少优惠条件却可能被遗漏。这是教学情境:生成第一版后,可以用 Specify 补充“增加刚好达到折扣门槛、低于门槛的用例,按现有业务规则断言”。要求落在场景上,比只说“测试写全面”更容易检查。

文档还允许重新生成,或通过 Customize Prompt 修改后续生成使用的提示。它们解决的是不同问题:当前结果缺场景,先补具体要求;团队每次都有同样的测试写法,再考虑调整生成提示。不必为了一次缺漏重写整个项目配置。

测试代码要有落脚处

点击 Accept all 后,生成结果保存到项目。若已有测试模块,测试会放到那里;如果没有,AI Assistant 会创建相应模块。已有测试文件时,它会寻找并向原文件加入测试。这个细节影响很实际:补的是正在维护的测试集,便于与已有断言和辅助方法一起阅读。

在 PyCharm 中,官方明确沿用项目配置的默认 test runner,位置在 Python 的 Integrated Tools 设置里。对于团队已有 pytest 或其他测试惯例的项目,这比拿到一段脱离环境的示例更容易继续工作。

另一个入口是直接在测试文件里调用生成。此时它会先要求补充要测试的场景,再把代码加进现有测试。这适合你已知道缺哪个用例,只需要把场景变为项目里的实际测试逻辑。

最该审的是断言,而不只是能否运行

测试通过也可能只是复述了现有实现。以上面的折扣为例,断言的金额应来自确认过的业务规则,不能因为模型算出了一个数,就用同一个数证明方法正确。依赖的 mock 是否遮住真正行为,也需要结合项目判断。

AI Assistant 总览说明,它会把请求和相关项目上下文发送给模型;模型接入可以使用 JetBrains AI 订阅、自带 API 等受支持方式,具体功能还应对应所用 IDE。已有插件和账号之后,我会先选一个边界明确的方法:生成、补场景、看 diff、保存并运行相关测试。拿到一份与项目相接的测试草稿,才是这个入口最直接的价值。

原始资料:JetBrains AI Assistant 官方资料

以上为编辑整理,功能、许可与使用条件以官方说明为准。

返回每日分享