主なテストライブラリ一覧
| 種類 | ライブラリ名 | 用途・特徴 |
| テストランナー | 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 | ブラウザ操作やユーザーシナリオ全体のテスト |