LoginSignup
14
3

Jestでcontextを使えるようにする

Last updated at Posted at 2021-06-03

これは何

記事投稿イベント「3000文字Tips」の参加記事です。

はじめに

RSpec などのテストを書かれる方は、desctibecontext を使い分けることがあるかと思います。
Jest には describe のみが存在していて、 context を利用することができませんでした。

Jest を使い始めて慣れて筆者は、久しぶりの RSpec で全部 describe で書いてレビュアーから指摘をいただきました()

あまり RSpec と Jest での書き方を分けたくない、同じように書けることを目指して、Jest でも context を使えるようにします。

既に context の設定の仕方は Jest のリポジトリでやり方が話されていますが、少し古いので、やり方を少し変える必要があります。

開発環境

検証した環境です。

  • Next.js: 10.2.2
  • Jest: 26.6.3

やり方

context を定義する

issue 内に書いてあるように、describe のエイリアスを context に設定します。

setupTestFramework.js
global.context = describe

Jest 実行時に作成したファイルを読み込むようにする

jest.config.js
module.exports = {
  setupFilesAfterEnv: ['./setupTestFrameWork.js'],
}

元々はpackage.jsonや、jest.config.js に setupTestFrameworkScriptFile を定義していたようですが、今は setupFilesAfterEnv に置き換わったとのことです。
これで、testファイル内で context を利用できるようになりました。

VSCode でエラーが出るのを解消する。

これで終わり!と思いきや、testファイルを開いてみると、何やら context に赤線が...

VSCodeでエラーが出ている画面

Jest は context を解釈してくれていますが、VSCodeがそれを認識できず、エラーになっているようです。

手っ取り早く解消するのは、d.tsに定義してあげるのが良さそうです。

declare let context: jest.Describe

こちらで赤線が解消されます。

14
3
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
14
3