0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Jestのまとめ --公式ドキュメントを読んで--(最低限で投稿、今後更新)

Last updated at Posted at 2022-05-18

What is Jest?

Jestは、JavaScriptのためのテスティングライブラリです。

Jestを用いたテストの流れ

Reactテストの流れ.png
図1.Jestを用いたテストの流れ

セットアップ

データベースの初期化やコンテナを表示するDOMの準備といった、テストを行う前に実行する処理を記述する。
beforeAllでは、スコープ内(トップレベルならファイル全体、describe内ならdescribe内)のテストを実行する前に1度だけ実行する処理を記述する。
beforeEachでは、スコープ内の各テストの実行前に毎回実行する処理を記述する。
※細かい実行タイミングは、公式ドキュメントを参照

後始末

データベースやDOMツリーのクリーンアップといった、テストを行った後に実行する処理を記述する。
afterAllでは、スコープ内(トップレベルならファイル全体、describe内ならdescribe内)のテストが全て終了した後に1度だけ実行する処理を記述する。
afterEachでは、スコープ内の各テストを行った後に毎回実行する処理を記述する。
※細かい実行タイミングは、公式ドキュメントを参照

テスト

discribe
複数のテストをひとまとめにするために使用する。
(多分、before・afterのメソッドのスコープを行うために使用する)

test
テストの内容を記述する。
テストの内容は、javascriptの必要な処理を行た後、マッチャーを使用して実行結果を確認する。

Jestの機能

マッチャー

値のテストを行うためのメソッドで、expectationオブジェクトのメソッドとして定義されている。
※ 細かい使い方は、expect API ドキュメント参照

使用例

// 真偽値のテスト
expect(null).toBeNull();  // green
expect(true).toBeFalsy;   // red

// 数値のテスト
expect(5).toBeGreaterThan(3);  // green
expect(5).toEqual(4);          // red

// 文字列のテスト
expect('team').not.toMatch(/I/);      // greem
expect('Christoph').toMatch(/stop/);  // greem

モック関数(自分も完全には理解しきれていない)

以下を行うことで、コード間の繋がりをテストすることができる。

  • 関数が持つ実際の実装を除去・上書きする
  • 関数の呼び出し(また、呼び出しに渡されたパラメータも含め)をキャプチャする
  • new によるコンストラクタ関数のインスタンス化をキャプチャする

※ 細かい使い方は、モック関数 API ドキュメント参照

.mockプロパティ
モック関数呼び出し時のデータや関数の返り値等が記録されている。

Jestオブジェクト

モックの作成を行ったり、Jestの全体的な動作を制御したりできる。
※ 細かい使い方は、Jestオブジェクト API ドキュメント参照

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?