如何使用enzyme通过onClick测试redux action

4
我有一个函数,我正在尝试使用enzyme进行测试。
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未定义。我不确定缺少了什么。

1个回答

5
在挂载组件时,您需要将操作作为 props 提供给它,例如:
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")

你知道如何判断操作是否通过expect调用吗? - Brian Kalski

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接