reactjs - React-Test-Render 调用组件方法
问题描述
我有以下组件:
export const FormikInput: React.SFC<Props> = (props: Props) => {
const handleChange = (value: string) => {
// do something
props.setFieldValue(props.key, value);
return (
<TextField
label={props.label}
onChangeText={handleChange}
value={props.values[props.key]}
/>
);
};
我想调用handleChange
方法用户 react-test-renderer 可以吗?
解决方案
给一个classname
toTextField
并嘲笑你handleChange
这样的:
describe('handleChange event success', () => {
it('handleChange invokes without throwing an error', () => {
const handleChange = jest.fn();
const wrapper = shallow(<YourComponent
handleChange ={handleChange}
/>);
wrapper.find('.myTextField').simulate('change');
expect(handleChange ).toHaveBeenCalled();
});
});
您的 TS 可能需要一些调整,我已经为 JS 编写了这个