2
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 5 years have passed since last update.

Jestでjsonファイルをmockする

Last updated at Posted at 2019-03-13

やりたいこと

Jestを使い、特定のモジュールでrequire()しているjsonファイルをmockしたい

解決方法

package.jsonjest>moduleNameMapperを設定し、テスト実行時のみ、mockしたいjsonファイルのパスを書き換える

実装例

以下のモジュールをテスト対象とします

//target.js
const json = require('./required.json');
/** 以降、処理が記載されているとする **/

テスト実行時にtarget.jsrequire()するjsonファイルをmock.jsonに差し替えたい場合、package.jsonに以下の設定を加えます

{
  "jest": {
    "moduleNameMapper": {
      ".*/required\\.json$": "<rootDir>/mock.json"
    }
  }
}

moduleNameMapperのkeyには、差し替え前のモジュールのパス(正規表現)を、valueには差し替え後のモジュール(mock)のパスを記載します
(valueにある<rootDir>package.jsonのある階層を示すエイリアスです)

上記の設定により、require('./required.json')で指定したパスがmoduleNameMapperのkeyとマッチし、対応するvalueのパスに書き換えられて実行されます

参考

2
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
2
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?