【发布时间】:2018-07-03 13:25:34
【问题描述】:
怎么了,
我正在尝试测试一些使用 redux 的 react 组件。
默认行为应通过休息调用加载选择输入中的选项列表。此调用是在我的组件中的方法 componentDidMount() 上进行的。
该组件工作正常,但我无法在测试中模拟相同的行为。
我无法从由 Provider 包装的实例调用方法 componentDidMount()。
谁能帮我解决这个问题
import React from 'react'
import {expect} from 'chai'
import {mount, shallow} from 'enzyme'
import sinon from 'sinon'
import { reducer as formReducer } from 'redux-form'
import { createStore, combineReducers } from 'redux'
import { Provider } from 'react-redux'
import ConnectedComponent from '../../../src/components/Component'
describe('Component <Component />', () => {
let store = createStore(combineReducers({ form: formReducer }))
let wrapper = mount(<Provider store={store}><ConnectedComponent /></Provider>)
// this call does not works
wrapper.instance().componentDidMount()
it('should load select input on component mount', () => {
expect(wrapper.find('select option')).to.have.length(12)
})
})
【问题讨论】:
-
不应该
mount为你这样做吗?为什么要直接调用生命周期方法?
标签: reactjs redux tdd provider