TDD のサンプルって、Java が多いのは気のせいでしょうか? Go はテストコード書きやすいけど、久しくアプリケーションのコードを書いてない状況。 TDD を自分でする機会がなく、本や勉強会だけでは全然身につけることができません。
以下、メモ。
- 自動テスト
- テストコードなどの作成により、テストの一部を自動化する仕組み
- TDD
- テストコードを先に各進め方(レッド・グリーン・リファクタリング)で開発を進める開発スタイル
→ TDD は自動テストを含むが、自動テストはTDDがなくても実施できる それぞれ解決したい課題は異なる
自動テストが解決したい課題
テストコードが積み上がっていくことで、回帰テストコストが引くにまま維持され、品質維持が用意に
- リファクタリングもしやすくなるので、コード品質も向上させやすい
正しい挙動の定義がわからない
- メインコードがこう動いているから、多分こういう仕様
- テストコードに想定される挙動が記述される
ドキュメントと違って、古くならない
十分なテストが書かれない
- カバレッジは足りないことはわかるが、十分であることの根拠には使えない
- → Clean と Works は自動テストだけでも頑張れば目指せるが TDD はその実現を加速する
和田さんが YouTube チャットに降臨してて補足を入れてたのが豪華だった...