テストの考え方 — 小さなアサーション、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のループ
- 振る舞いに基づいてテストに名前を付けます

小さなアサーション
小さな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");

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");

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");

振る舞いに基づく名前
関数が何をするべきかに基づいて、確認項目に名前を付けます。境界値と典型的なケースを含めます。
// 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");

小さく焦点を絞ったテスト
ヒント:
- テストは小さく、焦点を絞ります(1つの考えに1つずつ)。
- 正常系と、1つの境界値をテストします。
- テストしやすい純粋関数を優先します。
- 後でJest/Vitestを使って自動化します。まずは考え方を身につけます。

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

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

よくある質問
「テストの考え方 — 小さなアサーション、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フィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- テストの考え方 — 小さなアサーション、AAA、red→green→refactor
- ESLintによるLintとPrettierによるフォーマット
- CIの基礎 — pushごとにlint/testを実行