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

複数の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 設計が悪い気がするんだけど、他の人はどうやってるんだろう 🤔