本文へ移動
cccskills
無料GitHub で公開日本語紹介

tdd

失敗するテストを先に書き、通る最小限の実装を一つずつ進めます。利用者と合意した公開インターフェースで振る舞いを検証し、内部構造の変更に耐えるテストを目指すスキルです。

原文原文の説明を見る

测试驱动开发。适用于用户想用先写测试的方式构建功能或修复缺陷、提到 “red-green-refactor”,或需要集成测试时。

インストール方法を見る

こんなときに便利

  • テストを先に書いて機能を作りたいとき
  • 不具合の再現テストから修正したいとき
  • 振る舞いを確かめる結合テストの作成
  • テストする公開境界を決めたいとき

日本語での紹介

できること

失敗するテストを先に書き、それを通す最小限のコードを実装するテスト駆動開発を進めます。一度に扱うのは、一つのテスト対象の境界、一つのテスト、一つの最小実装です。内部の処理方法ではなく、外部から使う公開インターフェースを通じて振る舞いを検証します。

こんなときに便利

テストを先に書いて機能を追加したいときや、不具合を再現するテストから修正を始めたいときに向いています。内部構造を変えるたびに壊れるテストを避け、仕様として読めるテストや結合テストを整えたい場面にも使えます。

使い方の例

  • 「この機能を、失敗するテストから一つずつ実装して」
  • 「この不具合を公開インターフェース経由で再現してから修正して」

注意点

テストを書く前に、対象となる公開境界を利用者と確認します。GLOSSARY.md があれば用語を合わせ、対象領域の ADRs(設計判断の記録)を尊重します。インターフェース設計自体が論点なら codebase-design を参照します。この手順ではリファクタリングを実装の反復に含めず、code-review の段階で扱います。

この紹介文は、公開されている SKILL.md をもとに AI(OpenAI Codex)が作成しました。正確な仕様は下の原文を確認してください。

含まれるファイル(4)

  • SKILL.md3.4 KB
  • agents/openai.yaml91 B
  • mocking.md1.5 KB
  • tests.md2.2 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

测试驱动开发

TDD 是 red -> green loop。这个 skill 是让该 loop 产出值得保留的 tests 的 reference:什么是好 test、tests 应该放在哪里、anti-patterns,以及 loop 的规则。每个 cycle 前和 cycle 中都要参考这些内容,而不是事后才看。

探索 codebase 时,读取 GLOSSARY.md(如果存在),让 test names 和 interface vocabulary 与项目 domain language 对齐,并尊重你触碰区域的 ADRs。

什么是好 test

Tests 应通过 public interfaces 验证 behavior,而不是 implementation details。代码可以完全改变;tests 不该随之改变。一个好 test 读起来像 specification:"user can checkout with valid cart" 能清楚说明存在什么能力;因为它不关心 internal structure,所以能承受 refactors。

示例见 tests.md,mocking 规则见 mocking.md。

Seams:tests 放在哪里

Seam 是你测试的 public boundary:可以观察 behavior、但不伸手进入内部的 interface。Tests 放在 seams 上,绝不针对 internals。

只测试预先认可的 seams。 写任何 test 前,先写下要测试的 seams 并与用户确认。未经确认的 seam 不写 test。你无法测试所有东西;提前认可 seams,才能把测试精力放在 critical paths 和复杂 logic 上,而不是每个 edge case。

询问:"What's the public interface, and which seams should we test?"

当 interface 的形状本身就是问题所在时(module 该多深、seam 该放在哪里、interface 应该暴露什么),调用 Skill 工具并指定 codebase-design 获取词汇。它是 module、interface、depth、seam、adapter、leverage 和 locality 这些术语的共享来源,是供查阅的 reference,而不是要运行的 session。

反模式

  • Implementation-coupled:mock internal collaborators、测试 private methods,或通过 side channel 验证(例如不用 interface 而直接查询 database)。特征是 refactor 时 test 失败,但 behavior 没变。
  • Tautological:assertion 以和代码相同的方式重新计算 expected value(expect(add(a, b)).toBe(a + b)、手工按同一逻辑生成 snapshot、把 constant 断言等于它自己),因此天然 pass,永远无法与代码 disagree。Expected values 必须来自独立 source of truth:known-good literal、worked example 或 spec。
  • Horizontal slicing:先写所有 tests,再写所有 implementation。批量 tests 验证的是 想象中的 behavior:你测试的是东西的 shape,不是 user-facing behavior;tests 会对真实变化迟钝,并在理解 implementation 前承诺 test structure。改用 vertical slices:一个 test -> 一个 implementation -> repeat,每个 test 都是回应上一轮学习的 tracer bullet。

Loop 的规则

  • Red before green. 先写 failing test,再只写足够让它通过的代码。不要预判未来 tests,也不要添加 speculative features。
  • One slice at a time. 每个 cycle 只处理一个 seam、一个 test、一个 minimal implementation。
  • Refactoring is not part of the loop. Refactoring 属于 review stage(见 code-review skill),不属于 red -> green implementation cycle。

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

コメント

ログインなしで書き込めます。使ってみた感想、質問、動かなかった環境などを気軽にどうぞ。

まだコメントはありません。最初のコメントを書いてみませんか。

送信するとすぐに公開されます。メールアドレスや電話番号などの個人情報は書かないでください。URL は 2 つまでです。

0 / 1000 文字

このフォームは reCAPTCHA で保護されており、Google のプライバシーポリシーと利用規約が適用されます。

同じリポジトリのスキル

ask-matt

無料概要あり

アイデアの具体化、実装、不具合調査など、今の状況に合う関連スキルと使う順番を案内し、仕様作成や作業の引き継ぎを含めて開発の進め方を選ぶためのスキル。

  • アイデアから実装までの進め方選び
  • 難しい不具合調査の入口を探したいとき
  • 複数セッションの仕様と作業計画
vinvcn/mattpocock-skills-zh-CN5,2082026年10月20日 更新

claude-handoff

無料概要あり

現在の会話を引き継ぎ用に要約し、新しいバックグラウンドエージェントを起動します。既存資料への参照や推奨スキルを添えて、次の作業へ引き継ぎます。

  • 新しいエージェントで作業を続けたいとき
  • 次のセッションの作業を絞りたいとき
  • 既存資料を参照して引き継ぎたいとき
vinvcn/mattpocock-skills-zh-CN5,2082026年10月20日 更新

code-review

無料概要あり

指定したコミットやブランチからの差分を、コード規約と仕様への適合という二つの観点で並行レビューし、それぞれの指摘と重要な問題を分けて報告するスキル。

  • ブランチやPRをレビューしたいとき
  • 特定コミット以降を確認したいとき
  • 仕様の実装漏れや範囲外の変更の確認
vinvcn/mattpocock-skills-zh-CN5,2082026年10月20日 更新

codebase-design

無料概要あり

少ない利用ルールで多くの処理を扱えるモジュール設計を支援し、共通の用語と原則を使って、インターフェースや処理の差し替え位置、テストのしやすさを検討するスキル。

  • モジュールの使い方を簡単にしたいとき
  • リファクタリング時の構造検討
  • 処理を差し替える位置の検討
vinvcn/mattpocock-skills-zh-CN5,2082026年10月20日 更新

diagnosing-bugs

無料概要あり

不具合や性能低下を繰り返し再現できる検証手順を作り、原因の仮説を絞って修正します。最小の再現例づくりから再発防止テスト、一時的な調査コードの片付けまで進めます。

  • 解消しないエラーや誤出力の調査
  • 断続的な不具合の再現率を上げたいとき
  • 性能低下の測定と原因調査
vinvcn/mattpocock-skills-zh-CN5,2082026年10月20日 更新

domain-modeling

無料概要あり

プロジェクトの用語や概念の境界を具体例とコードで確かめ、合意した定義を用語集に、重要な設計判断を記録に残して認識をそろえるスキルです。

  • プロジェクトの曖昧な用語を整理したいとき
  • GLOSSARY.mdを作成・更新したいとき
  • 概念の境界をコードや例外で確かめたいとき
vinvcn/mattpocock-skills-zh-CN5,2082026年10月20日 更新

vinvcn のスキルをすべて見る

このスキルの問題を報告する