the*_*ode 6 unit-testing reactjs redux
应该如何编写单元测试以确保mapDispatchToProps正确返回包含在调度函数中的动作创建者?
我目前正在使用Mocha和Enzyme进行测试.
这是我的容器组件.
import { Component } from 'react'
import { connect } from 'react-redux'
import Sidebar from '/components/Sidebar'
import Map from '/components/Map'
import * as LayerActions from '../actions/index'
// Use named export for unconnected component (for tests)
export const App = ({layers, actions} ) => (
<div>
<Sidebar LayerActions={actions} />
<Map />
</div>
)
export const mapStateToProps = state => ({
layers: state.layers
})
export const mapDispatchToProps = dispatch => ({
actions: bindActionCreators(LayerActions, dispatch)
})
// Use default export for the connected component (for app)
export default connect(mapStateToProps, mapDispatchToProps)(App)
Run Code Online (Sandbox Code Playgroud)
我实际上建议你不要试图这样做.除非您非常特别需要以dispatch不寻常的方式使用,否则我建议您只使用connect支持的对象速记语法.如果您将一个充满动作创建者的对象作为第二个参数传递给connect它,它将自动bindActionCreators为您运行该对象.所以,在这种情况下它会export default connect(mapState, LayerActions)(App).
我确实看到你将该调用的结果作为命名的道具返回actions.我开始做我自己,但最终切换远离它,因为它需要我的一些组件的"知道",他们连接到终极版(即不必调用this.props.actions.someActionCreator(),而不是this.props.someActionCreator()).
我写了一篇名为Idiomatic Redux的文章:为什么要使用动作创作者?它更详细地介绍了其中一些主题.
| 归档时间: |
|
| 查看次数: |
3739 次 |
| 最近记录: |