【发布时间】:2020-07-21 02:28:55
【问题描述】:
这是我拥有的组件
<div
id={id}
data-testid="checkboxWrapper"
className={`${checkboxWrapper} ${customClass ? customClass : ''}`}
style={style}
>
<input
data-testid="checkbox"
type="checkbox"
onChange={handleChange}
checked={checked}
id={`checkbox${id}`}
name={name}
/>
{label && <label htmlFor={`checkbox${id}`}>{label}</label>}
</div>
更改处理程序:
const handleChange = () => {
setChecked((prevValue) => !prevValue)
}
useEffect(() => {
onChange(value, checked)
}, [checked, value, onChange])
测试:
it('passed value and check state to onChange props', () => {
const onChange = (value, checked) => {}
const { getByTestId } = render(
<Checkbox defaultChecked onChange={onChange} />
)
const checkbox = getByTestId('checkbox')
const isChecked = checkbox.checked
fireEvent.change(checkbox)
expect(checkbox.checked).toEqual(!isChecked) // is not correct value
})
我在isChecked 中有检查状态并调用fireEvent.change,但expect(checkbox.checked).toEqual(!isChecked) 测试失败。
我做错了什么?
【问题讨论】:
标签: reactjs jestjs react-testing-library