TDDの基本概念 | テスト駆動開発(TDD) | JavaScript 超完全入門 基本から発展までのすべて

スポンサーリンク
スポンサーリンク
amazon
プライム感謝祭
--:--:--
~
ad. 価格範囲を指定して商品を探せます

TDDとは?

TDD(Test-Driven Development:テスト駆動開発)とは、プログラム本体より先にテストコードを書いて開発を進める手法です。

「まずテストを書く → テストを通すための最小限のコードを書く → コードを改善する」というサイクルを繰り返すことで、品質の高いプログラムを少しずつ作り上げていきます。

TDDの基本サイクル

TDDでは、次の3つの工程を繰り返します。

ステップ 内容
Red 失敗するテストを書く。
Green テストが成功する最小限のコードを書く。
Refactor 動作を変えずにコードを整理・改善する。

このRed → Green → Refactorを繰り返すことがTDDの基本です。

ステップ1:Red(失敗するテストを書く)

まずは機能が存在しない状態でテストを書きます。

const add = require("./add");

test("1 + 2 = 3", () => {
    expect(add(1, 2)).toBe(3);
});

この時点ではadd()関数が存在しないため、テストは失敗します。

ステップ2:Green(最小限の実装)

次に、テストが通る最小限のコードを実装します。

function add(a, b) {
    return a + b;
}

module.exports = add;

これでテストが成功します。

ステップ3:Refactor(改善する)

テストが成功したら、コードを読みやすく整理します。

今回の例では十分シンプルなので変更は不要ですが、実際の開発では重複コードの削除や変数名の改善などを行います。

function add(a, b) {
    return a + b;
}

module.exports = add;

リファクタリング後も、すべてのテストが成功することを確認します。

TDDの流れ

TDDは次のような流れで進みます。

  1. テストを書く。
  2. テストを実行して失敗を確認する。
  3. 最小限のコードを書いてテストを成功させる。
  4. コードを整理する。
  5. 次の機能について同じことを繰り返す。

TDDのメリット

  • バグを早い段階で発見できる
  • 安心してリファクタリングできる
  • 仕様がテストコードとして残る
  • 必要最小限のコードを書く習慣が身に付く
  • 保守しやすいプログラムになりやすい

TDDの注意点

  • 最初は開発速度が遅く感じることがある。
  • テストコードも保守が必要になる。
  • 細かすぎるテストを書くと管理が大変になる。
  • UI全体の動作確認には別のテストも必要になる。

JavaScriptでよく使われるテストツール

ツール 特徴
Jest 最も利用されているテストフレームワークの1つ。設定が簡単。
Vitest Vite向けに高速動作する新しいテストフレームワーク。
Mocha 柔軟性が高く、長年利用されているテストフレームワーク。

まとめ

  • TDDはテストを先に書く開発手法である。
  • 「Red → Green → Refactor」のサイクルを繰り返して開発する。
  • 小さな単位でテストすることで品質を維持しやすくなる。
  • リファクタリングを安心して行えるようになる。
  • JavaScriptではJestやVitestなどのテストフレームワークがよく利用される。