【发布时间】:2017-12-15 07:27:14
【问题描述】:
在集成测试中,我想测试连接的动作创建者是否被调用。
describe('SomeContainer', () => {
let subject, store, fancyActionCreator
beforeEach(() => {
store = createStore(combineReducers({ /* ... */ }))
fancyActionCreator = sinon.spy()
const props = {
fancyActionCreator
}
subject = (
<Provider store={store}>
<SomeContainer {...props} />
</Provider>
)
})
it('calls fancyActionCreator on mount', () => {
mount(subject)
expect(fancyActionCreator.callCount).to.equal(1)
})
}
动作创建者在 componentWillMount 内部调用,并在测试环境之外按预期工作。
问题是原始动作创建者在测试中被调用并且没有被正确地模拟掉。
我感觉这是因为 Redux 的 connect() 方法正在取代间谍:
connect(mapStateToProps, { fancyActionCreator })(SomeContainer)
【问题讨论】:
标签: reactjs testing redux sinon enzyme