GPT中文小秘书挑几下就能开工
我积分

重构前用测试锁住现有行为

关于「重构前用测试锁住现有行为」:能拿到什么、要点选什么、怎么办

先锁行为再动刀,重构不背锅。特征测试是用测试锁定代码当前真实行为;在 GPT中文网点选几项,能直接拿到可跑的测试文件和覆盖点清单。

能拿到什么

  • 推荐:特征测试代码文件 + 覆盖点清单表(可跑的测试文件,逐条断言核心分支与边界值;清单表标已锁/未覆盖)

要你点选的几项

语言/框架、测试框架、上传函数源码、上传调用样例输出、上传现有测试用例、边界值枚举、目标分支覆盖率、断言依据。多数点一下就行,没选的按常见情况替你定,交付时说清哪几项是按默认的。

怎么办

  1. 上传函数源码、调用样例和现有用例
  2. 勾选边界值枚举范围与目标覆盖率
  3. 选成品格式,等待生成测试文件与清单表
  4. 本地跑一遍测试,对照清单核未覆盖分支
  5. 人工复核断言是否锁住当前行为

别人还这样说

  • 我只有函数源码和几个调用样例,帮我生成特征测试并列出覆盖点
  • 补测试锁行为,断言要按实际输出写,别按我想的写
直接说你要办的事。下面是别人怎么办的,点任何一项就换成你自己的。左边是别人怎么办的,右边是你的,点一项就开始改。
示范 · 别人这样说

「这段老代码我不敢动,先帮我按现在的行为写一套测试锁住」

按示范选好的 点一项就变成你的

你的成品会在这里出现
示例成品 · 不是你的按示范写的,看个样子
示例: 特征测试文件 CalcPriceTest.java(示意) @Test public void orderAmountZeroReturnsZero() { assertEquals(0, CalcPrice.total(0, 1)); } @Test public void negtiveQtyThrows() { assertThrows(IllegalArgumentException.class, () -> CalcPrice.total(100, -1)); } @Test public void discountBoundaryAt1000() { assertEquals(900, CalcPrice.total(1000, 1)); } @Test public void discountAbove1000() { assertEquals(880, CalcPrice.total(1100, 1)); } @Test public void nullMemberFallback() { assertEquals(500, CalcPrice.total(500, null)); } 覆盖点清单表 用例编号 | 分支或边界 | 输入示意 | 期望断言 | 是否已锁 C-01 | 金额为0 | 0,1 | 返回0 | 已锁 C-02 | 数量为负 | 100,-1 | 抛参数异常 | 已锁 C-03 | 折扣临界1000 | 1000,1 | 返回900 | 已锁 C-04 | 折扣临界以上 | 1100,1 | 返回880 | 已锁 C-05 | 会员为空 | 500,null | 返回原价 | 已锁 C-06 | 数量超上限 | 100,9999 | 待补断言 | 未覆盖 C-07 | 金额为null | null,1 | 待补断言 | 未覆盖 覆盖率估算:按分支总数计,已锁分支5条、总分支7条,分支覆盖率约71%;如补C-06、C-07可到100%。断言值均由本地实测结果回填,非按合理预期编写。 注:测试仅锁住当前实际行为,不代表行为正确;改动前请以运行结果为准人工核对。

GPT中文 也可能出错,成品请自己核对关键数字和事实。条款 · 隐私