我尝试用酶测试以下功能。
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 。我不确定我缺少什么。
答案 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")