如何通过onClick与酶测试Redux动作

时间:2018-10-02 16:46:05

标签: reactjs redux jestjs 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 个答案:

答案 0 :(得分:2)

在安装组件时,您需要像提供道具一样提供动作

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")