所以我对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的第一篇文章,让我知道如果我应该澄清一切!
答案 0 :(得分:1)
不要导入商店。我们想模仿商店:
const store = mockStore(initialState);