我有一個(簡化的)組件:
function Checkbox(initialState) {
const myRef = useRef();
useEffect(() => {
myRef.current.checked = initialState;
}, [initialState]);
return (
<input ref={myRef} />
);
}
我想在 React 測驗庫中測驗復選框的初始選中狀態等于 initialState
it('has a checked state', () => {
render(<Checkbox initialState={true} />);
const checkbox = screen.getByRole('checkbox');
expect(checkbox.getAttribute('checked')).toBe(true);
});
測驗失敗,因為checkbox有一個checkednull 屬性,而不是 true。
uj5u.com熱心網友回復:
您需要檢查checked屬性(js 屬性)而不是屬性(初始 HTML 標記中的宣告...如果是靜態 HTML)
it('has a checked state', () => {
render(<Checkbox initialState={true} />);
const checkbox = screen.getByRole('checkbox');
expect(checkbox.checked).toBe(true);
});
PS 我還建議你使用defaultCheckedprop 而不是使用命令 set through.current.checked = true
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/348007.html
下一篇:打字稿/如何期待固定日期?
