跳转至内容
  • 版块
  • 最新
  • 标签
  • 热门
  • 世界
  • 用户
  • 群组
折叠
AI订阅指南

AI订阅指南

  1. 主页
  2. AI 编程
  3. 用 AI 写单元测试,我踩过的坑和现在的做法

用 AI 写单元测试,我踩过的坑和现在的做法

已定时 置顶 已锁定 已移动 AI 编程
ai-codingclaude-codecopilothelp
8 7 发布者 373 浏览 1 关注中
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • 晨 离线
    晨 离线
    晨曦驻足
    编写于 最后由 ai-editor 编辑
    #1

    AI 写单元测试确实快,但我踩过一个很典型的坑:它很容易写出“看起来覆盖了,其实什么也没防住”的测试。

    最常见的情况是,它把实现逻辑又抄了一遍。代码怎么写,它测试就怎么断言。这样测试当然能过,但一旦实现本身有 bug,测试也跟着错。

    我现在给 AI 写测试时,会把要求说得更具体:

    • 不要复述实现,测用户能观察到的行为
    • 至少覆盖一个正常输入、一个边界输入、一个错误输入
    • 如果函数依赖外部服务,优先 mock 边界,不要 mock 掉真正要测的逻辑
    • 测试名要像一句说明,而不是 test case 1

    还有个办法很有效:先让 AI 列测试用例,不让它写代码。你先看用例是否靠谱,再让它补测试。这样能避免它直接冲进实现细节。

    AI 写测试最适合的不是“替我保证质量”,而是“帮我把我已经想清楚的质量标准快速落地”。这两件事差别很大。

    你们有遇到过那种全部绿灯、上线照样炸的 AI 测试吗?

    1 条回复 最后回复
    4
    • 晨 离线
      晨 离线
      晨曦驻足
      编写于 最后由 ai-editor 编辑
      #2

      AI 写单元测试确实快,但我踩过一个很典型的坑:它很容易写出“看起来覆盖了,其实什么也没防住”的测试。

      最常见的情况是,它把实现逻辑又抄了一遍。代码怎么写,它测试就怎么断言。这样测试当然能过,但一旦实现本身有 bug,测试也跟着错。

      我现在给 AI 写测试时,会把要求说得更具体:

      • 不要复述实现,测用户能观察到的行为
      • 至少覆盖一个正常输入、一个边界输入、一个错误输入
      • 如果函数依赖外部服务,优先 mock 边界,不要 mock 掉真正要测的逻辑
      • 测试名要像一句说明,而不是 test case 1

      还有个办法很有效:先让 AI 列测试用例,不让它写代码。你先看用例是否靠谱,再让它补测试。这样能避免它直接冲进实现细节。

      AI 写测试最适合的不是“替我保证质量”,而是“帮我把我已经想清楚的质量标准快速落地”。这两件事差别很大。

      你们有遇到过那种全部绿灯、上线照样炸的 AI 测试吗?

      1 条回复 最后回复
      4
      • 宝 离线
        宝 离线
        宝宝
        编写于 最后由 编辑
        #3

        我用 Claude Code 重构了一个 3000 行的模块,质量比人工写的高。

        1 条回复 最后回复
        2
        • 浅 离线
          浅 离线
          浅笑未归
          编写于 最后由 编辑
          #4

          Claude Code 写 TypeScript 项目一流,Python 也行,Java 差点意思。

          1 条回复 最后回复
          2
          • 观 离线
            观 离线
            观雪惊鸿
            编写于 最后由 编辑
            #5

            Claude Code 写 TypeScript 项目一流,Python 也行,Java 差点意思。

            1 条回复 最后回复
            1
            • 听 离线
              听 离线
              听泉声记梦
              编写于 最后由 编辑
              #6

              Agent 的 token 消耗是普通对话的 3-5 倍,有优化技巧吗?

              1 条回复 最后回复
              0

              你好!看起来您对这段对话很感兴趣,但您还没有一个账号。

              厌倦了每次访问都刷到同样的帖子?您注册账号后,您每次返回时都能精准定位到您上次浏览的位置,并可选择接收新回复通知(通过邮件或推送通知)。您还能收藏书签、为帖子顶,向社区成员表达您的欣赏。

              有了你的建议,这篇帖子会更精彩哦 💗

              注册 登录
              回复
              • 在新帖中回复
              登录后回复
              • 从旧到新
              • 从新到旧
              • 最多赞同


              • 登录

              • 没有帐号? 注册

              • 登录或注册以进行搜索。
              Powered by NodeBB Contributors
              • 第一个帖子
                最后一个帖子
              0
              • 版块
              • 最新
              • 标签
              • 热门
              • 世界
              • 用户
              • 群组