Dev Study
← Angular コース

94. ng testとテストランナー — 保存のたびに回る開発リズム

テストの実行は ng test コマンドが担当します。既定では watch モードで起動し、ファイルを保存するたびに関連テストが自動で再実行されます。「コードを直す→保存→数秒後に結果が出る」というリズムができると、テストは面倒な作業ではなく、手を動かしながら常に答え合わせしてくれる相棒になります。

テストを実際に動かすエンジンがテストランナーです。Angular は長年 Karma を標準としてきましたが、v21以降の新しい標準は Vitest です。とはいえテストコードの書き方はほぼ共通で、describe でグループを作り、it に1つの検証を書き、beforeEach に毎回の準備をまとめる構造は、どちらのランナーでも同じように動きます。

初学者の落とし穴は、記事のランナー前提の違いに気づかないことです。Karma 前提の古い記事とはコマンドの細部や設定が異なることがあります。また it の中に検証を詰め込みすぎると、失敗時にどこが壊れたのか分からなくなります。「1つの it に1つの関心事」を守るのが読みやすいテストのコツです。

サンプルコード(フレームワーク環境が必要なため表示のみ)

# テストを実行する(既定で watch モード)
ng test

# 出力例:
#  ✓ totalPrice > 価格の合計を返す
#  ✓ totalPrice > 0件なら0を返す(境界値も必ず試す)
#  ✓ Greeting > 渡した名前が表示される
#
#  Tests  3 passed (3)

# ファイルを保存するたびに自動で再実行される。
# 「直す → 保存 → 数秒で答え合わせ」のリズムで開発する

# CIなどで1回だけ実行して終了したいとき
ng test --watch=false

# ランナーのメモ:
#   ・v21以降の新しい標準ランナーは Vitest
#   ・それ以前の標準は Karma(古い記事はこちら前提が多い)
#   ・describe / it / beforeEach の書き方はどちらも同じ
サンプルコードで身につける(5本) →

学んだ概念を、素朴な例から実務寄りの例まで5つの具体例で確認します。

公式ドキュメントで詳しく ↗