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

60 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

計画に基づいて、プロダクションコードの実装前にテストを作成してください。
Piece Contextに示されたReport Directory内のファイルのみ参照してください。他のレポートディレクトリは検索/参照しないでください。
**重要: プロダクションコードは作成・変更しないでください。テストファイルのみ作成可能です。**
**やること:**
1. 計画レポートを確認し、実装予定の振る舞いとインターフェースを理解する
2. 対象モジュールの既存コードと既存テストを確認し、テストパターンを把握する
3. 計画された機能に対する単体テストを作成する
4. インテグレーションテストの要否を判断し、必要なら作成する
- 3つ以上のモジュールを横断するデータフローがあるか
- 新しいステータス/状態が既存ワークフローに合流するか?
- 新しいオプションが呼び出しチェーンを通じて末端まで伝搬するか?
- いずれかに該当すればインテグレーションテストを作成する
5. ビルド(型チェック)を実行し、テストコードに構文エラーがないことを確認する
**テスト作成の方針:**
- プロジェクトの既存テストパターン(命名規約、ディレクトリ構成、ヘルパー)に従う
- Given-When-Then 構造で記述する
- 1テスト1概念。複数の関心事を1テストに混ぜない
- 正常系・異常系・境界値・エッジケースを網羅する
- テストは実装完了後にパスすることを前提に書く
**Scope出力契約作成開始時に作成:**
```markdown
# 変更スコープ宣言
## タスク
{タスクの1行要約}
## 変更予定
| 種別 | ファイル |
|------|---------|
| 作成 | `src/__tests__/example.test.ts` |
## 推定規模
Small / Medium / Large
## 影響範囲
- {影響するモジュールや機能}
```
**Decisions出力契約完了時、決定がある場合のみ:**
```markdown
# 決定ログ
## 1. {決定内容}
- **背景**: {なぜ決定が必要だったか}
- **検討した選択肢**: {選択肢リスト}
- **理由**: {選んだ理由}
```
**必須出力(見出しを含める)**
## 作業結果
- {実施内容の要約}
## 変更内容
- {作成したテストファイル一覧}
## ビルド結果
- {ビルド実行結果}