0Pricing
JavaScript Academy · レッスン

テストの考え方 — 小さなアサーション、AAA、red→green→refactor

小さなテストを書く習慣を身につけます。アサーション、Arrange–Act–Assert、red→green→refactorのループを理解します。

「テストの考え方 — 小さなアサーション、AAA、red→green→refactor」はCoddyKit上の無料JavaScript Academyレッスンです。 これはレッスン1/3です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはJavaScript Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 JavaScript Academyコースには全3レッスンが含まれています。

テストの考え方が必要な理由

目標:小さく信頼できるテストを考えられるようにします。

  • 結果を確認する小さなassert
  • AAA:Arrange → Act → Assert
  • Red → Green → Refactorのループ
  • 振る舞いに基づいてテストに名前を付けます
テストの考え方 — 小さなアサーション、AAA、red→green→refactor — イラスト1

小さなアサーション

小さなassertEqualは、成功または失敗を出力します。これは実際のテストフレームワークの動作を再現したものです。

// Minimal assertEqual for quick checks
function assertEqual(actual, expected, name) {
  if (actual === expected) {
    console.log("✅", name);
  } else {
    console.log("❌", name, "expected:", expected, "got:", actual);
  }
}

// Demo check
assertEqual(2 + 3, 5, "adds numbers");
テストの考え方 — 小さなアサーション、AAA、red→green→refactor — イラスト2

Arrange–Act–Assert

AAAによってテストが読みやすくなります。データを準備し、関数を呼び出し、その後で結果を確認します。

// AAA: Arrange → Act → Assert
// Arrange: prepare inputs
function sum(a, b) { return a + b; }
const a = 2;
const b = 4;

// Act: call the function
const result = sum(a, b);

// Assert: compare
assertEqual(result, 6, "sum returns a + b");
テストの考え方 — 小さなアサーション、AAA、red→green→refactor — イラスト3

Red→Green→Refactor

失敗するテスト(red)を書き、成功する状態(green)にしてから、コードを整理(refactor)します。

// Red → Green → Refactor with a tiny example
// 1) Red: write a failing test (expect wrong implementation)
function greet(name) { return "Hi " + name; } // simple implementation

// Intentionally failing expectation first (red)
assertEqual(greet("Ayla"), "Hello Ayla", "greet says Hello"); // likely fails

// 2) Green: fix the code to satisfy the test
function greetFixed(name) { return "Hello " + name; }
assertEqual(greetFixed("Ayla"), "Hello Ayla", "greet says Hello (fixed)");

// 3) Refactor: improve code without changing behavior
function greetRefined(name) {
  const cleaned = String(name).trim();
  return "Hello " + cleaned;
}
assertEqual(greetRefined(" Ayla "), "Hello Ayla", "greet trims input");
テストの考え方 — 小さなアサーション、AAA、red→green→refactor — イラスト4

振る舞いに基づく名前

関数が何をするべきかに基づいて、確認項目に名前を付けます。境界値と典型的なケースを含めます。

// Clear names describe behavior, not internals
function isAdult(age) { return age >= 18; }

assertEqual(isAdult(18), true, "isAdult returns true at boundary 18");
assertEqual(isAdult(17), false, "isAdult returns false below boundary");
テストの考え方 — 小さなアサーション、AAA、red→green→refactor — イラスト5

小さく焦点を絞ったテスト

ヒント:

  • テストは小さく、焦点を絞ります(1つの考えに1つずつ)。
  • 正常系と、1つの境界値をテストします。
  • テストしやすい純粋関数を優先します。
  • 後でJest/Vitestを使って自動化します。まずは考え方を身につけます。
テストの考え方 — 小さなアサーション、AAA、red→green→refactor — イラスト6

AAAパターンのクイズ

クイックチェック:AAAパターンです。

テストの考え方 — 小さなアサーション、AAA、red→green→refactor — イラスト7

まとめ

まとめ:小さなassertを使い、AAAに従い、Red → Green → Refactorを繰り返します。小さく始めましょう。初心者にとっては、複雑さより明快さが大切です。

テストの考え方 — 小さなアサーション、AAA、red→green→refactor — イラスト8

よくある質問

「テストの考え方 — 小さなアサーション、AAA、red→green→refactor」レッスンは無料ですか?

はい。「テストの考え方 — 小さなアサーション、AAA、red→green→refactor」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、JavaScript Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 JavaScript Academyコースには全3レッスンが含まれています。

「テストの考え方 — 小さなアサーション、AAA、red→green→refactor」で何を学びますか?

小さなテストを書く習慣を身につけます。アサーション、Arrange–Act–Assert、red→green→refactorのループを理解します。 ブラウザで直接実行するハンズオンコードでJavaScript Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

JavaScript Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのJavaScript Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/3です。

「テストの考え方 — 小さなアサーション、AAA、red→green→refactor」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このJavaScript Academyレッスンでコードを書いて実行できますか?

はい。すべてのJavaScript Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. テストの考え方 — 小さなアサーション、AAA、red→green→refactor
  2. ESLintによるLintとPrettierによるフォーマット
  3. CIの基礎 — pushごとにlint/testを実行
← JavaScript Academyに戻る