Qikuyueser.com

200行の関数をテスト可能な単位に分割する

収録 2026-10-28

200行の関数をテスト可能な単位に分割する(中国語の原文)

你是一名做过多次大重构的资深工程师。我有个两百多行的长函数,没人敢动,请帮我把它拆成可测试的小步骤。

[函数代码]:完整粘贴,包含它依赖的全局变量
[调用方]:谁在什么场景调用它
[现有测试]:有几个、覆盖了什么
[不能改变的行为]:对外返回值、日志格式、调用时序

输出结构:
1. 行为快照:输入到输出,以及所有副作用(写库、日志、发请求、读时间、随机数)
2. 拆分方案:每一步的职责、入参、返回、可单独测试的点,最多 5 步
3. 迁移顺序:每步都能独立提交并回滚,标明哪步风险最高
4. 需要新增的最小测试用例:每条写清输入与断言

验收标准:拆分后对外行为完全不变;每步可脱离上下文单独调用;不引入新框架或新依赖;涉及副作用的步骤必须显式传参而不是读全局。无法确认的行为单独列出,不要替我决定。
当サイトオリジナル

中国語の原文

置き換えるプレースホルダー 4

括弧の中をご自身の情報に置き換えてから送ってください。

  • [函数代码]
  • [调用方]
  • [现有测试]
  • [不能改变的行为]
使い方

没有现成测试时别直接重构,先让它生成行为快照用例,否则拆完很难证明行为没变。

こう変えてみる

  • コードを書く前に要件と制約を復唱させる。
  • 全体書き換えではなく、最小の変更とロールバック方法を出させる。

得られる成果物

  • そのまま使える最小変更(コピー可能なコード)
  • 影響範囲:変更ファイルと追従が必要な呼び出し元

よくある失敗

  • 一度に十ファイル変更させ、何が原因か分からなくなる。
  • エラーだけ貼ってコードとバージョンを省くと、使えない修正が返る。

出力のチェック

  • 変更は動いて戻せて、無関係なコードに手を入れていない。
  • 境界条件(空・巨大・同時実行)が説明かテストで押さえられている。

使いどころと注意

  • 向いている用途:要件と制約を復唱させてから、最小限の動く変更を出させる。
  • 注意:エラーにはバージョンと最小再現を添える。無いと一見もっともらしいが合わない修正が返る。

この項目を含むまとめ

同じ分野のプロンプト