takt/builtins/ja/facets/instructions/write-tests-first.md
2026-02-23 23:20:07 +09:00

2.4 KiB
Raw Blame History

計画に基づいて、プロダクションコードの実装前にテストを作成してください。 Piece Contextに示されたReport Directory内のファイルのみ参照してください。他のレポートディレクトリは検索/参照しないでください。

重要: プロダクションコードは作成・変更しないでください。テストファイルのみ作成可能です。

やること:

  1. 計画レポートを確認し、実装予定の振る舞いとインターフェースを理解する
  2. 対象モジュールの既存コードと既存テストを確認し、テストパターンを把握する
  3. 計画された機能に対する単体テストを作成する
  4. インテグレーションテストの要否を判断し、必要なら作成する
    • 3つ以上のモジュールを横断するデータフローがあるか
    • 新しいステータス/状態が既存ワークフローに合流するか?
    • 新しいオプションが呼び出しチェーンを通じて末端まで伝搬するか?
    • いずれかに該当すればインテグレーションテストを作成する
  5. ビルド(型チェック)を実行し、テストコードに構文エラーがないことを確認する

テスト作成の方針:

  • プロジェクトの既存テストパターン(命名規約、ディレクトリ構成、ヘルパー)に従う
  • Given-When-Then 構造で記述する
  • 1テスト1概念。複数の関心事を1テストに混ぜない
  • 正常系・異常系・境界値・エッジケースを網羅する
  • テストは実装完了後にパスすることを前提に書く

Scope出力契約作成開始時に作成:

# 変更スコープ宣言

## タスク
{タスクの1行要約}

## 変更予定
| 種別 | ファイル |
|------|---------|
| 作成 | `src/__tests__/example.test.ts` |

## 推定規模
Small / Medium / Large

## 影響範囲
- {影響するモジュールや機能}

Decisions出力契約完了時、決定がある場合のみ:

# 決定ログ

## 1. {決定内容}
- **背景**: {なぜ決定が必要だったか}
- **検討した選択肢**: {選択肢リスト}
- **理由**: {選んだ理由}

必須出力(見出しを含める)

作業結果

  • {実施内容の要約}

変更内容

  • {作成したテストファイル一覧}

ビルド結果

  • {ビルド実行結果}