はじめてのテスト駆動開発(TDD)
エンジニア3年目にして、初体験だったので記録しておきます。
開発したもの
自分について
- 社員数5人以下のベンダーで働いてます
- 会社では1番若手
- レガシーからの脱却に憧れがある
- 最近はテック系のポッドキャストが好き
- 会社全体のテストやCIに対する認識は、
- 「テストに時間をかけることで品質が上がる」
- 「テストを書く??」
- 「しーあい?」
はじめてのテスト駆動
- 「データベースも、クライアント側も全く関わらない、プログラム上のみで完結するそこそこ複雑な処理」を追加することになった。かねてから「テストを書くエンジニアになりない」と思っていた。ついにテストを書くときが来た
- visual studioでテストを書くチュートリアルだけはやったことがある。
- 足し算関数をテストする定番のやつ
- テストケースを考える。
- テストしたいメソッドのスケルトンを作る
- 入力のListデータを作成する。
- 出力されるデータをAssertでチェックする(業務のコードでAssertを使うのも初めて)
- 記念すべきテスト実行
- テストは通らないという予定調和
- 通るようにスケルトンのメソッドをどんどん肉付けしていく
- テスト実行のショートカットコマンドを覚え、雑にテストを実行する
- いつでも、何回でも実行していい
- テストケースが1つずつ通過されていく
- どうしても引っかかるケースがある
- 治す
- 他のケースが通らなくなる
- 戻す
- 治す
- 他のケースが通らなくなる
- 戻す
- コードでテストを書いたので、何回でもノーコストでやり直せる
- ついに通った
- 今までの自分の作業の進め方ならバグを仕込んでいただろう
- 今までは大きく始めようとばかり考えていた
- できる、かつ、効果があると感じた小さいスコープだからこそ初めてのテスト駆動開発が行えた
- ゼロ→イチを成し遂げたことに達成感を感じている
- 大きな目標はCI/CDの構築、