Google Recaptcha v2的反应单元测试>>

问题描述 投票:0回答:1

我实现了一个React-Recaptcha组件,我正在尝试向其添加一些单元测试。

除其他事项外,我试图测试组件的状态是否已更改(应该是选中此框后收到的令牌)。

<ReCAPTCHA sitekey={RECAPTCHA_SITE_KEY} onChange={value => this.setState({ gToken: value, recaptchaState: true })} />

我的测试有这样的内容

describe('RefundaModal Component', () => {
  const modalcomponent = shallow(<RefundModalDialog />);
  const captcha = shallow(<ReCAPTCHA sitekey={RECAPTCHA_SITE_KEY} onChange={() => {}} />);
  test('render RefundModalDialog component', () => {
    expect(modalcomponent.exists()).toBe(true);
  });
  test('user clicked on recaptcha', async () =>
    modalcomponent.setState({ gToken: null, recaptchaState: false });
    captcha.props().onChange();
    expect(modalcomponent.state().recaptchaState).toEqual(true);
  });
});

[我也尝试了另一种方法captcha.simulate('change');,但是当我打算接受真实结果时,我一直收到错误。

如何进行这种测试的正确方法?

谢谢

我实现了一个React-Recaptcha组件,我正在尝试向其添加一些单元测试。除其他外,我试图测试组件的状态是否已更改(应该是令牌...

javascript reactjs jestjs enzyme
1个回答
0
投票

Captcha的设计方式使其无法被漫游器操纵,因此您的自动化测试也无法操纵它。

解决方法:https://sqa.stackexchange.com/questions/17022/how-to-fill-captcha-using-test-automation

© www.soinside.com 2019 - 2024. All rights reserved.