主なテストライブラリ一覧
種類 | ライブラリ名 | 用途・特徴 |
テストランナー | Mocha | シンプルで柔軟なテスト実行環境 |
テストランナー | Jest | Facebook製。設定不要で多機能 |
テストランナー | Vitest | Vite ベースの高速テストランナー |
アサーション | Chai | Mocha とセットでよく使われる。「expect」「should」など文法が豊富 |
HTTPリクエストテスト | Supertest | Expressアプリに対して実際の HTTP リクエストを送ってテストできる |
モック/スタブ | Sinon | 関数・タイマー・HTTP などをモックできる |
カバレッジ | nyc (Istanbul) | テストカバレッジの計測に使われる(Mocha + Chai の場合によく使う) |
E2Eテストで使われる代表的なツール
ツール名 | 特徴 | 用途 |
---|---|---|
Playwright | モダンで高速、マルチブラウザ対応(Chromium, Firefox, WebKit) | 実際のブラウザ操作でE2Eテスト |
Cypress | 視覚的にデバッグしやすい、使いやすさに定評あり | |
Selenium | 歴史が長いがやや古め。多言語対応 | |
Puppeteer | Chrome専用のブラウザ操作用ツール(Google製) | 実際のブラウザ操作でE2Eテスト |
ライブラリのよくある組み合わせ
- Mocha + Chai + Supertest(定番構成)
- Jest(単体で全部入り)
主なテストの種類
種類 | 対象・役割 | 説明 |
---|---|---|
ユニットテスト (Unit Test) | 個々の関数やモジュール単位で動作を検証 | 小さな単位での動作確認。外部依存を切り離してテスト。 |
結合テスト (Integration Test) | 複数のモジュールやコンポーネントが連携する部分を検証 | モジュール間の連携やAPIの入出力など、複数部分の組み合わせをチェック。 |
エンドツーエンドテスト (E2E Test) | アプリ全体をユーザー視点でテスト | ブラウザ操作やAPI呼び出しを含めたシナリオ全体のテスト。SeleniumやCypressが代表例。 |
機能テスト (Functional Test) | システムの機能仕様に沿って動作を検証 | ユーザー要件通りに機能しているかの検証。 |
回帰テスト (Regression Test) | 既存機能が新変更で壊れていないか確認 | 修正・追加後のバグ防止目的のテスト。 |
パフォーマンステスト (Performance Test) | 応答速度や負荷耐性を測定 | 高負荷状態での動作確認など。 |
セキュリティテスト (Security Test) | 脆弱性や不正アクセス防止の検証 | XSSやSQLインジェクションなどの脆弱性検査。 |
WebアプリやExpress.jsでよく使うテスト
種類 | ツール例 | 内容 |
---|---|---|
ユニットテスト | Jest, Mocha | 関数やクラス単位での動作確認 |
結合テスト | Jest + Supertest | ルーティングやDBアクセスの連携動作確認 |
E2Eテスト | Cypress, Playwright, Selenium | ブラウザ操作やユーザーシナリオ全体のテスト |