本記事では、Jestのテストコードの書き方について紹介します。

以下、参考にしたサイトと書籍です。

公式サイト

書籍

前提条件

  • Node.jsの環境があること
  • Jestがインストール済みであること

Node.jsの環境がない方は、フロントエンド開発のためのJavaScript入門 – Node.jsの環境を構築を参考にしてください。

Jestをインストールしていない方は、フロントエンド開発のためのJavaScript入門 – Node.jsの環境を構築を参考にしてください。

目次

まず、テストコードは以下のような構成になっています。

test('タイトル', () => {
  expect(検証する値).(マッチャー)(期待値)
});

例として、前回の記事で書いたテストコードです。

test("5 * 2 = 10", () => {
  expect(double(5)).toBe(10);
});

一つずつ解説していきます。

test関数について

test関数には、2つの引数を渡します。

test('タイトル', 関数)

まず、test関数の第一引数にテストのタイトルを渡します。

test関数の第二引数には、検証値が期待値通りになっているか検証する関数を渡します。

expect関数について

expect関数には、検証する値を渡します。

expect(検証する値)

expect関数は、戻り値としてexpectationオブジェクトを返します。

このexpectationオブジェクトのに対して、マッチャーを利用することで検証を行います。

マッチャーについて

Jestには、様々なマッチャーがあります。

前回の記事で書いたテストコードでは、toBeというマッチャーを使用しました。

toBe(値)

toBeマッチャーは、プリミティブ値の比較やオブジェクトの参照IDの比較に使用します。

Jestには、他にも色々なマッチャーが用意されているので、APIドキュメントを一度見てみるといいと思います。

このブログでも、toBe以外のマッチャーを紹介していきます。

テストのグループ化について

describe関数を使用することで、関連するテストをグルーピングすることが出来ます。

前回の記事で書いたテストコードをグルーピングしてみます。

const double = require("./double");

describe("double関数のテスト", () => {
  test("5 * 2 = 10", () => {
    expect(double(5)).toBe(10);
  });

  test("0 * 2 = 0", () => {
    expect(double(0)).toBe(0);
  });
});

実行すると、以下のように表示されます。

グルーピングすることで、どの機能(今回の例では、関数)を対象にしたテストなのかが分かりやすくなります。

まとめ

今回は、Jestのテストコードの書き方を解説しました。

テストコードについては、下記の構成を覚えておきましょう。

test('タイトル', () => {
  expect(検証する値).(マッチャー)(期待値)
});

マッチャーについては、テストコードを書く際に都度調べて色々試してみるといいです。

以上で、今回は終了です。

記事を読んでいただきありがとうございました。

読んだ感想や疑問、ご指摘などコメントしていただけると幸いです。

次回は、Jestでパラメタライズドテストを行う方法について紹介していきます。

投稿者

yohyoh

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)