Dha*_*r S 7 reactjs jestjs material-ui react-testing-library react-hook-form
如何使用react-testing-library对屏蔽的输入字段进行单元测试。该组件是使用material ui 和react-hook-form 开发的。在这里您可以找到代码并处理我这边的示例。提前致谢
测试文件:
let Phone_Input = getByTestId("phone-input");
fireEvent.change(
<InputMask mask="(999) 999-9999">{() => Phone_Input}</InputMask>,
{
target: { value: "9500902621" }
}
);
Run Code Online (Sandbox Code Playgroud)
成分:
<InputMask mask="(999) 999-9999">
{() => (
<TextField
id="standard-required"
name="phone"
label="phone"
placeholder="Enter Phone"
inputProps={{
"data-testid": "phone-input"
}}
/>
)}
</InputMask>
Run Code Online (Sandbox Code Playgroud)
错误:
The given element does not have a value setter
expect(received).toBe(expected) // Object.is equality
Expected: "(950) 090-2621"
Received: "(___) ___-____"
Run Code Online (Sandbox Code Playgroud)
小智 -1
我的组件与你的不同,但可能会引导你走向正确的方向。
这就是我的测试的样子:
const propsMock = { mask: sampleMask };
const { getByTestId } = render(<MaskedTextField {...propsMock} />);
const input = getByTestId('maskedtextfield-');
fireEvent.change(input, { target: { value: '9999999999' } });
expect(getByTestId('maskedtextfield-').value).toEqual('(999) 999-9999');
Run Code Online (Sandbox Code Playgroud)
组件重要部分:
<Input
placeholder={placeholder}
disabled={disabled}
onChange={onChange}
onKeyUp={onKeyUp}
onBlur={onBlur}
inputRef={inputRef}
inputComponent={TextMaskCustom as any}
inputProps={{
'data-testid': dataTestId || `maskedtextfield-${label}`,
defaultValue: defaultValue || '',
...getMaskProps(mask),
}}
/>
Run Code Online (Sandbox Code Playgroud)
我的部门是:输入是一个material-ui组件,TextMaskCustom是react-text-mask. 在这里工作得很好。
| 归档时间: |
|
| 查看次数: |
4100 次 |
| 最近记录: |