Communicate Intent(意図を伝える)
1. 原則
テストの意図を明確にする
- テストコードは、そのテストが何のために、何を検証しているのかを明確に伝えるドキュメントである
- テストコードを読んだだけで、テスト対象の振る舞いや要件が理解できることを目指す
- テストの成功・失敗だけでなく、その背景にある「意図」を表現する
2. 根拠
可読性と保守性の向上
- テストコードは、開発者間のコミュニケーションツールとなる
- 新しい開発者がコードベースに参加した際、テストを読むことでシステムの振る舞いを素早く把握できる
- テストが失敗した際、その意図が明確であれば、問題の原因特定が容易になる
3. 指針
表現力豊かなテスト記述
- テストメソッドやテストクラスには、その目的を簡潔に表す命名を行う
- Given-When-Then のような構造化されたテストパターンを使用する
- Given: テストの前提条件をセットアップする
- When: テスト対象の振る舞いを実行する
- Then: 期待される結果を検証する
- アサーションには、検証内容が明確になるようなメッセージを付与する
4. 注意事項
冗長な記述の回避
- 過度に詳細な命名やコメントは、かえってテストコードを読みにくくする
- 「意図」を伝えるために、簡潔かつ的確な表現を心がける
- コードそのものが意図を物語るよう、クリーンなテストコードの作成に注力する