reactjs - 如何使用酶通过 onClick 测试 redux 操作
问题描述
我尝试用酶测试以下功能。
renderLoginLink(caption) {
return (
<a href="#" id="lnkAuthenticateWithGoogle" onClick={() => this.props.actions.authenticateWithGoogle()}>
{caption}
</a>
);
}
我正在使用它来模拟点击。
let container, store
const mockStore = configureMockStore();
store = mockStore(initialState);
container = mount(<Provider store={store}><Login {...initialState} /></Provider>)
container.find("a#lnkAuthenticateWithGoogle").simulate("click")
我收到this.props.actions未定义的错误。我不确定我错过了什么。
解决方案
在安装组件时,您需要将操作作为道具提供给它,例如
let container, store
const mockStore = configureMockStore();
store = mockStore(initialState);
const actions = {
authenticateWithGoogle: jest.fn()
}
container = mount(<Provider store={store}><Login {...initialState} actions={actions}/></Provider>)
container.find("a#lnkAuthenticateWithGoogle").simulate("click")
推荐阅读
- python-3.x - 仅当标记列为 1 时,如何计算滚动平均值
- python - 如何将列内部提取到几列
- hibernate - Session.get() 和 EntityManager.find() Hibernate 有什么区别
- javascript - 迭代嵌套对象
- r - 将分类变量转换为 R 中的因子时出错
- javascript - 使用 js react native 获取 Android 的触摸压力
- pixi.js - Pixi:SVG 没有按预期缩放
- gnuplot - 如何从 .csv 文件镜像和重复周期函数
- linq - Linq 查询平均值
- git - 如何从已创建但未完成的拉取请求中排除文件?