本記事では、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でパラメタライズドテストを行う方法について紹介していきます。