gpt4 book ai didi

reactjs - 如何对 Ant Design 的 Form getFieldDecorator() 进行 stub ?

转载 作者:行者123 更新时间:2023-12-03 13:28:53 25 4
gpt4 key购买 nike

我正在尝试对表单进行简单的 Jest 快照测试,但在运行测试时出现错误:

Uncaught [TypeError: getFieldDecorator(...) is not a function]

我以为我可以为 getFieldDecorator 创建一个 stub 并将其传递到 props 中,但它不起作用。

这是测试:

  it('renders correctly initially', () => {

const testForm = {
getFieldDecorator: jest.fn()
};

const wrapper = mount(
<Router>
<LoginForm form={testForm} />
</Router>
);

expect(wrapper).toMatchSnapshot();

});

这是我的组件中的 render() 方法:

  render() {
const { form } = this.props;
const { getFieldDecorator } = form;

return (
<Form onSubmit={this.handleSubmit} className="login-form">
<FormItem>
{getFieldDecorator('username', {
rules: [{ required: true, message: 'Please enter your username!' }]
})(
<Input
prefix={<Icon type="user" style={{ color: 'rgba(0,0,0,.25)' }} />}
placeholder="Username"
/>
)}
</FormItem>

我将组件导出为:

export default withRouter(Form.create()(LoginForm));

最佳答案

你的方法是正确的,你唯一错过的是getFieldDecorator应该返回一个函数,所以你需要相应地模拟它,即:

const testForm = {
getFieldDecorator: jest.fn( opts => c => c )
};

关于reactjs - 如何对 Ant Design 的 Form getFieldDecorator() 进行 stub ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53670441/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com