所以我对 redux-store 的实现可能不是最好的,而且我对 Jest 的了解是最少的。
我有三个文件,其中包括...
- 一个模块
- 一个反应组件
- (普通)商店,默认导出
我的测试文件如下所示:
// 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 的第一篇文章,如果我应该澄清任何事情,请告诉我!