クイックスタート(30〜60分)

このクイックスタートでは、本書の主題である「テストをガードレールとして機能させる」体験を、最小サンプルで再現します。

前提(ローカル環境)

  • Node.js: 18 以上(npm を利用)
  • Python: 3.11 以上(pip を利用)

1. まずは成功する状態を確認する(main)

リポジトリルートで、サンプルのテストを実行します。

npm run test:examples

すべて成功することを確認します。

2. あえて失敗する状態を作る(演習用ブランチ)

演習用ブランチに切り替え、テストが失敗することを確認します。 このブランチはリポジトリにあらかじめ用意されています。もしローカルに存在しない場合は、先に git fetch --all を実行してから、以下のコマンドを試してください。

git switch exercise/discount-rounding-bug-v1
npm run test:examples

このブランチは「典型的な不具合(丸め処理の誤り)」を 意図的に入れた 版です。

3. 失敗から原因を特定する

失敗しているテストの観点は次の通りです。

  • 1セントなどの小さな金額では、丸め処理の誤りが顕在化しやすい
  • 仕様として「四捨五入(round half up)」を想定しているが、実装が切り捨てになっている

4. 修正して、テストを通す

この演習では、次の2つを修正対象とします。

  • examples/python/discount.py
  • examples/node/src/discount.js

ポイントは「丸めのルールを、テスト(仕様)に合わせる」ことです。

修正後、再度テストを実行してすべて成功することを確認します。

npm run test:examples

5. main に戻す

演習が終わったら main に戻します。

git switch main

次に読む(本編への接続)

  • テストを「戦略」として設計する: 第4章
  • AI生成テストをレビューする観点: 第5章
  • PR/CI の品質ゲートを最小構成で定義する: 第6章、付録A(A.4)