작성
·
252
0
checkbox를 findByRole로 찾아올 때
Insurance라는 이름으로 어떻게 찾는지 궁금합니다.
const insuranceCheckbox = await screen.findByRole('checkbox', {
name: 'Insurance'
});
Options.js 파일에서는
<input
type="checkbox"
id={`${name} option`}
onChange={(event) => {
updateItemCount(name, event.target.checked ? 1 : 0);
}}
/>{' '}
<label htmlFor={`${name} option`}>{name}</label>
id와 htmlFor에는 Insurance option이라고 들어가는데.. 이해가 잘 되지 않습니다..!
저는 userEvent.clear(HTML객체) 함수가 HTML객체(보통 input, textarea)을 초기화해주는 거라고 이해했는데요!
spinbutton은 type을 하기전에 clear를 하는데,
왜 checkbox는 click하기 전에 clear를 하지 않는건가요???
type과 click의 차이 인지 아니면 checkbox와 spinbutton의 차이인지 아니면 그 외의 이유가 있는지 궁금합니다!
답변 2
0
0
안녕하세요 가은님
우선 첫번째는요
공식 사이트에 보면
https://testing-library.com/docs/queries/byrole/
You can query the returned element(s) by their accessible name or description. The accessible name is for simple cases equal to e.g. the label of a form element, or the text content of a button, or the value of the aria-label
attribute.
text centent도 된다고 나와있습니다.
그러기에 input에 텍스트가 되는 Insurance도 가능 합니다.
두번째는 checkbox에도 clear() 해주셔도 됩니다.
https://testing-library.com/docs/ecosystem-user-event/#clearelementclear(element)
Selects the text inside an <input>
or <textarea>
and deletes it.
clear()는 요소안에 있는 텍스트를 지우는 것이기 때문에
checkbox이든 spinbutton이든 다 사용할 수 있습니다.
하지만 현재 만들고 있는 앱에서 clear()를 넣지않아도 에러가 나지 않기 때문에 사용하지 않았습니다 ~
감사합니다.