テストツールの基本まとめ

2025年9月15日

駆け出しエンジニアが現場でよく耳にする「JUnit」「PyTest」「Jest」「Selenium」「Postman」「Cypress」について、シンプルに整理してみます。これを知っておくだけでも会話や調査がしやすくなります。


JUnit

Java向けの代表的なテストフレームワークです。
単体テストを書くときに広く使われており、多くのJavaプロジェクトに標準で導入されています。
特徴としては、シンプルなアノテーション記法(@Test など)でテストを記述でき、テストの自動化・実行がしやすい点があります。


PyTest

Pythonで最も人気のあるテストフレームワークです。
複雑な設定をしなくても簡単に始められるのが特徴で、テスト関数を test_ で始めるだけで動きます。
テストの失敗時に見やすいエラーメッセージが出たり、プラグインを追加して機能を拡張できるのも強みです。


Jest

JavaScriptやTypeScript向けのテストフレームワークです。
Reactの公式推奨でもあり、フロントエンド開発で特によく利用されます。
モック機能やスナップショットテストなどが標準で揃っていて、UIの動作確認も効率よく行えます。

セットアップ手順

パッケージ導入

npm i -D jest @types/jest jest-environment-jsdom \
  @testing-library/react @testing-library/jest-dom @testing-library/user-event

TypeScript の設定ファイルの場合

npm i -D ts-node @types/node

プロジェクトのルートにjest.config.tsを作成

// Next.js プロジェクト用の Jest 設定を簡単に作るための関数を読み込む
import nextJest from 'next/jest.js';

// Next.js のルートディレクトリを指定
// ここを "./" にしておけば通常の Next.js プロジェクト全体を対象にする
const createJestConfig = nextJest({ dir: './' });

// Jest の基本設定を定義
const config = {
  // ブラウザのような DOM API を使える環境を指定
  // React コンポーネントのテストには必須
  testEnvironment: 'jsdom',

  // すべてのテストの実行前に必ず読み込むファイルを指定
  // 今回は jest.setup.ts を読み込む
  setupFilesAfterEnv: ['<rootDir>/jest.setup.ts'],
};

// Next.js 用に調整された Jest 設定をエクスポート
export default createJestConfig(config);

プロジェクトのルートにjest.setup.tsを作成

// Testing Library の DOM 用マッチャを使えるようにする
// 例: expect(element).toBeInTheDocument();
//     expect(button).toBeDisabled();
//     expect(div).toHaveTextContent("Hello");
import '@testing-library/jest-dom';

package.jsonに下記を追加

  "scripts": {
    "test": "jest"
  },

GitHub - idw-coder/paiza

Contribute to idw-coder/paiza developmen…
github.com


Selenium

ブラウザを自動で操作するためのテストツールです。
「人がクリックや入力をする操作」を自動で再現できるため、WebアプリのE2Eテスト(実際の操作に近いテスト)に使われます。
ただし動作が重くなりがちで、最近ではCypressなどの新しいツールに置き換わる場面も増えています。


Postman

APIのテストや確認に使うツールです。
GUIベースで操作できるのでコードを書かなくてもAPIリクエストを送れます。
個人の検証からチームでの自動テスト・ドキュメント共有まで幅広く対応できます。


Cypress

比較的新しいE2Eテストツールです。
Seleniumより軽快で、モダンなフロントエンド開発(ReactやVueなど)との相性が良いのが特徴です。
ブラウザ内で直接テストが走るため、結果の確認が分かりやすく、テストのデバッグもしやすいです。