我是Jest和React的新手,正在爲React Web項目設置Jest單元測試,並在嘗試在Reducer上執行此操作時遇到此問題。 看起來好像當被測試的文件包含Record時,當npm測試時(npm啓動時它運行完美),它變得不確定。 我已經把test.js文件中的jest.unmock('immutable'),jest.autoMockOff(),但它似乎不工作...挖掘解決方案,但我什麼也沒找到...React Jest導入不可變對象未定義
這裏是文件/輸出/設定
./reducer.js
export const initialState = new Record({ ... })()
...
export default function reducer(state=initialState, action) {...}
./__test__/reducer.test.js
import reducer,{initialState} from '../reducer'
describe('reducer',()=>{
it('initial state',()=>{
expect(reducer(undefined,{})).toEqual(
initialState
)
})
})
NPM測試輸出
FAIL src\reducers\__test__\reducer.test.js
● Test suite failed to run
ReferenceError: initialState is not defined
at reducer (src/reducers/reducer.js:88:303)
at node_modules/redux/lib/combineReducers.js:53:24
at Array.forEach (native)
at assertReducerShape (node_modules/redux/lib/combineReducers.js:51:25)
at combineReducers (node_modules/redux/lib/combineReducers.js:107:5)
at Object.<anonymous> (src/reducers/index.js:34:48)
at Object.<anonymous> (src/store/configureStore.development.js:19:255)
at Object.<anonymous> (src/store/configureStore.js:4:20)
at Object.<anonymous> (src/index.js:10:23)
at Object.<anonymous> (src/utils.js:11:161)
at Object.<anonymous> (src/actions/actions.js:373:324)
at Object.<anonymous> (src/reducers/reducer.js:64:229)
at Object.<anonymous> (src/reducers/__test__/reducer.test.js:7:21)
at process._tickCallback (internal/process/next_tick.js:109:7)
的package.json
"devDependencies": {
"babel-jest": "^20.0.3",
"babel-plugin-transform-es2015-modules-commonjs": "^6.24.1",
"babel-preset-es2015": "^6.24.1",
"babel-preset-react": "^6.24.1",
"babel-preset-stage-0": "^6.24.1",
"babel-preset-stage-2": "^6.24.1",
"enzyme": "^2.9.1",
"enzyme-to-json": "^1.5.1",
"jest": "^20.0.4",
"jest-immutable-matchers": "^1.5.0",
"react-addons-test-utils": "^15.6.0",
"react-dom": "^15.6.1",
"react-scripts": "^1.0.10",
"react-test-renderer": "^15.6.1",
"redux-devtools": "^3.3.1",
"redux-devtools-dock-monitor": "^1.1.1",
"redux-devtools-log-monitor": "^1.1.1",
"redux-mock-store": "^1.2.3"
},
.babelrc
{
"presets":["react","es2015","stage-0","stage-2"]
}
你找到一個解決方案?我面臨同樣的問題。 – fpauer