そのため、redux-storeの実装は最善ではない可能性があり、Jestに関する私の知識は最小限です。
私は3つのファイルを持っています...
私のテストファイルは次のようになります。
_// file.test.js
jest.mock( 'store', () => jest.fn() )
// external
import React from 'react'
import configureStore from 'redux-mock-store'
// internal
import Component from 'components/Component'
import store from 'store'
describe( 'Test My Component', () => {
const mockStore = configureStore()
it ( 'should equal true', () => {
const initialState = { active: true }
store.mockImplementation(() => mockStore( initialState ))
expect( store.getState().active ).toBe( true )
} )
} );
_
ストアをモックしている理由は、_<Component />
_内で、同じstore
をインポートし、store.getState()
を使用するいくつかの関数を保持するモジュールを使用しているためです。 。
つまり、これが返すのは
_TypeError: _store2.default.getState is not a function
_
代わりに、モジュール呼び出し(_<Component />
_で使用されます)をモックすることでこれを回避しましたが、試したい初期状態が異なるため、これを実行できるはずです。すべてモジュールに依存しています。
これはSOに関する私の最初の投稿です。何か明確にする必要がある場合は、お知らせください。
ストアをインポートしないでください。ストアをモックしたい:
const store = mockStore(initialState);