【发布时间】:2020-11-17 18:03:30
【问题描述】:
我有一个组件,它具有验证输入元素 onblur 并在验证失败时添加错误类的功能:
TableRows = (props )=>(
return <input class="inputElement" onBlur="this.validate()" />
)
验证函数如下:
validate = async ({ target }: ChangeEvent<HTMLInputElement>) => {
try {
const element = target;
this.setState({ loading: true });
const { value } = target;
const match = value.match(/^\d+(?:\.\d{0,2})?$/g);
if (!match || match.length === 0) {
element.className += ' inputError';
} else {
element.className = target.className.replace(' inputError', '');
}
const { data: updatedValues } = await sendforSaving({inputValue: value});
this.setState({ newValues: data });
} finally {
this.setState({ loading: false });
}
};
我正在尝试用酶编写一个单元测试,如下所示:
it('should add error class on invalid input onblur', () => {
const mockVal4Test = {
localCurrency: 'USD',
value: '20.02.1',
} as any;
component = shallow(
<TableRows {...defaultProps} initialValues={mockVal4Test} currencyType={CurrencyType.LOCAL} />
);
const myInput = component.find('.inputElement');
myInput.simulate('blur');
expect(saleTarget.hasClass('inputError')).toBe(true);
});
我得到了 myInput 元素,但在模拟模糊之后,我期望调用“验证”函数并将错误类“inputError”添加到元素中。
【问题讨论】:
标签: reactjs unit-testing jestjs enzyme