3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

テストのアイデアの組み立て方を簡単にまとめてみる

Posted at

はじめに

アプリを作った後はしっかり動作するかを確認するためにテストを書くことが重要です。本記事では、Jest と React Testing Library を使って、テストのアイデアをどのように組み立てるかを初心者目線で解説します。

前提とする環境

本記事の内容は、以下の環境を前提としています。

  • Node.js 18 以上(node -v でバージョン確認)
  • npm または yarn を使用(npm -v / yarn -v でバージョン確認)
  • React 18 以上(package.jsonreact のバージョンを確認)
  • Vite を利用した React プロジェクト
  • Jest と React Testing Library を使用したテスト環境

テスト環境の準備

まず、必要なライブラリをインストールします。

npm install --save-dev jest @testing-library/react @testing-library/jest-dom

次に、package.json に以下を追加して、テストコマンドを実行できるようにします。

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

基本的なテストの流れ

テストを書くときは、以下の流れで考えると分かりやすくなります。

「何をテストするか?」を決める

まず、テスト対象のコンポーネントで「正しく動いてほしい機能」をリストアップします。
(例)

  • タイトルが表示されているか
  • 入力欄に文字を入れて、登録ボタンを押すとデータが追加されるか
  • 削除ボタンを押すとリストからデータが消えるか
  • 入力なしで登録ボタンを押したときにエラーが表示されるか

「どうやってテストするか」を考える

Jest と React Testing Library を使って、どのようにテストするかを考えます。

目的 使用する関数 提供元
コンポーネントを表示する render(<App />) React Testing Library
画面から要素を取得する screen.getByText() / screen.getByTestId() React Testing Library
ボタンをクリックする fireEvent.click(button) React Testing Library
期待する動作を確認する expect(...).toBeInTheDocument() Jest

テストコードを書く

例えば、「タイトルが表示されているか」をテストする場合、以下のコードになります。

📂 tests/App.test.jsx

import React from "react";
import { render, screen } from "@testing-library/react";
import "@testing-library/jest-dom";
import App from "../src/App";

describe("タイトル表示のテスト", () => {
  it("タイトルが 学習記録 であること", () => {
    render(<App />);
    const title = screen.getByText("学習記録");
    expect(title).toBeInTheDocument();
  });
});

テストを実行する

ターミナルで以下を実行すると、テストが実行されます。

npm test

テストが成功すると PASS と表示され、失敗すると FAIL となります。

まとめ

  • Jest は「期待する動作になっているか?」を確認するためのツール
  • React Testing Library は「React コンポーネントの動作をテストするツール」
  • テストを書くときは、「何をテストするか?」→「どうやってテストするか?」→「コードを書く」→「実行する」の流れで考える

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?