blog.unresolved.xyz
Fri Nov 20 2020

Jestで複数のexportがあるモジュールのモックをする

  • JavaScript
Jestで複数のexportがあるモジュールのモックをする

複数のexportがあるモジュールのモックをする

jestでMockをするとき

jest.mock('../../src/lib/api')

みたいなことをしようとしたんだけど、これをやると api モジュールがExportしてるリソースをすべてMockしてしまって動かなくなってしまう。

そういうときは jest.requireActual を使って以下の様に「特定リソースのみ」を上書きしてMockしてやれば部分的なMockができる。

jest.mock('../../src/lib/api', () => {
  return {
    ...jest.requireActual('../../src/lib/api'),
    getPosts: () => {
      return [
        { id: 1, title: 'post title1' },
        { id: 2, title: 'post title2' },
      ]
    }
  };
})

これもっといいやり方がある or 設計が悪い気がするんだけど、他の人はどうやってるんだろう 🤔

Author
Daisuke Tsuji

Daisuke Tsuji

フリーのWeb Developer。

RubyとかRailsを触ってる時間が多い。コーディングもマークアップもライティングもデザインもSEOもやるタイプ。

だいたいどれもだめ。業務委託のお仕事募集中。