📓Tech Study Work
ランキング
業界ガイド
就活ガイド
就活診断
比較・コラム
診断を始める
📓Tech Study Work

500社以上の就職偏差値ランキングと16タイプ性格診断で、自分に合う業界・企業を見つけるキャリアメディアです。

メインコンテンツ

  • 就職偏差値ランキング
  • 16タイプ就活診断
  • 業界ガイド一覧
  • 就活ガイド一覧
  • 2 社サイドバイサイド比較
  • 偏差値の算定方法

業界ガイド

  • IT・テック
  • コンサル
  • 金融・証券
  • 商社
  • メーカー・重工
  • スタートアップ

就活ガイド

  • 自己分析
  • ES 書き方
  • 面接対策
  • 業界研究
  • OB 訪問
  • インターン

サイト情報

  • Tech Study Workについて
  • 著者・編集部について
  • お問い合わせ
  • プライバシーポリシー
  • 免責事項

© 2026 Tech Study Work. All rights reserved.

プライバシー免責事項お問い合わせ
  1. ホーム
  2. 実践記事
  3. Jest/Vitestでテスト入門|現場で役立つユニット・統合テストの書き方
実践記事

Jest/Vitestでテスト入門|現場で役立つユニット・統合テストの書き方

2025年3月30日
約4分で読めます
Tech Study Work編集部
テストJestVitestTesting Libraryユニットテスト

この記事でわかること

  • 1テストカバレッジ100%は目指すべきですか?
  • 2E2Eテスト(Playwright・Cypress)はいつ書くべきですか?
  • 3テスト駆動開発(TDD)はすべての開発に適していますか?
Jest/Vitestでテスト入門|現場で役立つユニット・統合テストの書き方

目次

  1. 01なぜテストを書くべきか|テストの価値
  2. 02JestとVitestの選び方
  3. 03ユニットテストの書き方
  4. 04React Testing Libraryでコンポーネントテスト
  5. 05テストの品質を高めるための実践テクニック

なぜテストを書くべきか|テストの価値

「テストを書く時間がない」「動くコードにテストは不要」という声をよく聞きますが、中長期的には「テストがないコードの維持コスト」の方が圧倒的に高くつきます。テストが整備されていれば、リファクタリング・新機能追加時の既存機能への影響を素早く確認でき、自信を持ってコードを変更できます。

テストを書くメリット:
・バグの早期発見(本番環境でバグを発見するより開発時の方が修正コストが低い)
・仕様のドキュメントとして機能(テストコードを読むと動作仕様が理解できる)
・リファクタリングへの自信(テストがあれば安心して改善できる)
・チーム開発での品質担保(CIでテストが通ることを合流の条件にできる)

JestとVitestの選び方

JavaScriptのテストフレームワークとして最も広く使われているJestと、Viteを使ったモダンなプロジェクトで急速に普及しているVitestの使い分けを解説します。

Vitest(2025年推奨):
・Viteと統合されているため設定がシンプル
・実行速度がJestより高速(特に大規模テスト)
・JestとほぼAPI互換のため移行が容易
・Next.js・Vite・SvelteKit等のモダンプロジェクトに最適

Jest(老舗・安定):
・最も広く使われているためリソースが豊富
・Create React App等の古い構成との互換性が高い
・node_modules系のテストに強い

新規プロジェクトにはVitestを推奨します。JestからVitestへの移行は、設定ファイルの変更と一部のAPIの差分対応で可能です。

ユニットテストの書き方

関数・ユーティリティのユニットテストの基本的な書き方を解説します。

テストの基本構造(AAAパターン):
Arrange(準備)→ Act(実行)→ Assert(検証)の3ステップが基本です。

よく使うmatcher一覧:
・toBe:プリミティブ値の等価チェック(厳密)
・toEqual:オブジェクト・配列の内容チェック
・toBeTruthy / toBeFalsy:真偽チェック
・toBeNull / toBeUndefined:null/undefinedチェック
・toContain:配列・文字列に値が含まれるか
・toThrow:例外がスローされるか
・toHaveBeenCalledWith:モック関数が引数付きで呼ばれたか

非同期テストの書き方:
async/awaitを使った非同期テスト・Promise.resolves/rejectsを使ったPromiseのテスト。APIのモック(msw・jest.fn())の活用。

React Testing Libraryでコンポーネントテスト

Reactコンポーネントのテストには「実装の詳細ではなくユーザーの振る舞い」を検証するアプローチが重要です。React Testing Library(RTL)はこの思想に基づいたテストライブラリです。

RTLの基本的な使い方:
①renderでコンポーネントを描画
②screen.getByRole・getByText・getByLabelTextなどでDOM要素を取得
③userEvent.click・type などでユーザー操作をシミュレート
④expect(element).toBeInTheDocument()等でアサーション

クエリの優先順位(RTLの推奨):
getByRole → getByLabelText → getByPlaceholderText → getByText → getByTestId の順で使いましょう。getByTestIdはアクセシビリティを考慮したクエリが使えない場合の最終手段です。

テストの品質を高めるための実践テクニック

テストを書く上で知っておくべき実践的なテクニックを紹介します。

モックの活用:
・外部APIのモック(msw/mswjs):APIリクエストをインターセプトしてモックレスポンスを返す
・モジュールのモック(vi.mock・jest.mock):依存モジュールを置き換える
・spyOn:関数の呼び出しを追跡しつつ本物の実装を使う

テストのリファクタリング:
・テストが壊れやすい(実装変更で毎回失敗する)場合はテスト設計を見直す
・setup・teardown(beforeEach・afterEach)を使った共通処理の整理
・カスタムrender関数でProvider等をラップしてDRYなテストを書く

関連する比較記事

この記事に関連するサービス比較をチェック

AIコーディングツール比較

テストコードをAIで効率よく書こう

AIコーディングツールを使ってテストコードの自動生成・品質向上を実現して、開発速度を上げましょう。

AIコーディングツールを比較する

よくある質問

この記事をシェアする

X (Twitter)Facebook

この記事について

掲載情報は各サービスの公式ウェブサイト・プレスリリース等を参照し、公開時点の情報をもとに作成しています。

料金・サービス仕様は予告なく変更される場合があります。最新情報は必ず公式サイトでご確認ください。

比較・ランキング記事は広告費・アフィリエイト報酬の有無に関わらず、編集部独自の評価基準で作成しています。 詳細は免責事項・プライバシーポリシーをご確認ください。

最終更新: 2025年3月30日

執筆者

Tech Study Work編集部

開発担当

Web系スタートアップでの開発経験5年以上。Next.js・TypeScript・AWS・AIツールを日常的に使用し、実務視点での技術解説・ツール比較を担当。

詳細プロフィールを見る →

関連記事

GitHub Actions完全ガイド|CI/CDパイプラインを最初から構築する方法

実践記事2025年4月2日

Node.jsでREST API構築ガイド|実務レベルのAPIを最初から作る方法

実践記事2025年3月15日

React Hooks完全ガイド|useState・useEffect・カスタムフックを完全マスター

実践記事2025年3月12日

🏆 関連ランキング

AIツールランキング

テストコードをAIで効率よく書こう

AIコーディングツールを使ってテストコードの自動生成・品質向上を実現して、開発速度を上げましょう。

AIコーディングツールを比較する