• 大卫
    2026-05-20 来自北京
    如果老项目底层数据访问层改动了,对外接口没动是不是通过流量录制回访也ok,还需要补齐ut么

    作者回复: 是的,“流量录制回放”也可以。但是我建议还是要不足ut。因为ut的测试更轻量,场景更丰富,能发现更多问题,也能更快解决。 本质上“流量录制回放”和ut的作用时不一样的。虽然流量回放游泳,但是我建议ut得加。

    
    
  • 大卫
    2026-05-20 来自北京
    老师,要将老项目底层dao 各种散落mapper repo 迁移到基础rpc服务上,对外rpc接口较多但协议不动仅改dao层,分策略大规模迁移,这类补测试如何补呢,如何覆盖到repo,如果用spock test,单纯mock repo可能覆盖不到改动的测试了

    作者回复: 我建议的是还是两层: 1. ut:也就是针对dao层的单元测试 2. 集成测试,也就是rpc接口测试,通过对rpc的接口的类似crud的测试,保证接口的逻辑符合预期。因为协议不动,所以输入输出是固定的,这块测试起来应该比较快,AI可以快速搞定。 要覆盖repo的话,我觉得就是接口粒度的测试。 “如果用spock test,单纯mock repo可能覆盖不到改动的测试” 这句话我没太理解哈。理论上不是可以覆盖的嘛?

    
    
  • Zhong.Sir
    2026-05-17 来自广东
    如果AI补充这个测试案例时,测试通过了,实际运行却没有通过(假绿)的问题,如果经常出现这种问题,人 review也很累,这个主要是通过要求AI使用下面的提示词进行分析么:“ 对 Characterization Test 类型:先跑一次现有代码记录实际行为,再把行为转成断言。不要凭"应该是什么"写断言,凭"实际是什么"写。” 还需要增加哪些提示词或者步骤?

    作者回复: “测试通过了,实际运行却没有通过(假绿)的问题”,这算是一个bug了。AI 执行出错。 我自己的行为一般是:先判断哪些主链路的功能要测试。单测我一般全部交给AI。但是写出来的单测我都会看,看逻辑是否对。不看的话错了也不知道。有一种思路是,定义好输入和输出,让AI根据输入和输出来校验。也可以让AI来来生成输入和输出。然后让它写代码。 也就是分两步,让AI分析要做哪些测试,输入输出是什么。你只要review这部分就可以。然后让AI去写测试,然后你做一个简单的review。

    
    