我实现了一个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组件,我正在尝试向其添加一些单元测试。除其他外,我试图测试组件的状态是否已更改(应该是令牌...
Captcha的设计方式使其无法被漫游器操纵,因此您的自动化测试也无法操纵它。
解决方法:https://sqa.stackexchange.com/questions/17022/how-to-fill-captcha-using-test-automation