我有一个容器组件(MyContainer
),其函数通常作为支柱传递给MyComponent
:
export default class MyContainer extends Component {
...
someFunction(e){
...
}
...
render() {
return (
<MyComponent
someFunction={this.someFunction}
/>
);
}
}
我的测试应该确保MyComponent
作为支柱接收此功能 - 首先,我该怎么做?其次,我是否(我可以)进行任何检查以确保该支柱是1)功能和2)特定功能&#39; someFunction
&#39;?
答案 0 :(得分:2)
这个想法是基于调用someFuction
的{{1}}道具,那么,检查MyComponent
的{{1}}方法是否被调用:
someFunction
答案 1 :(得分:1)
您可以使用jest.fn()
创建mock function,然后determine if it was been called
例如,如果点击按钮会触发someFunction
,则可以按照以下方式进行测试:
it('calls the someFunction handler when the button is clicked', () => {
const mockFunction = jest.fn();
const wrapper = shallow(<MyComponent someFunction={mockFunction} />);
wrapper.find('button').simulate('click');
expect(mockFunction).toHaveBeenCalled();
});