렌더 검증
Testing Library로 실제 사용자에게 보이는 role, name, text를 기준으로 찾는다.
render이벤트 실행
클릭, 입력, 제출 뒤 callback 호출과 화면 변화를 함께 확인한다.
interaction비동기 대기
API 결과나 debounce 뒤 UI는 findBy와 waitFor로 조건을 기다린다.
asyncprops
필수/선택 props와 variant별 화면 차이를 검증한다.
불가능한 조합은 타입으로 막고 가능한 조합은 테스트로
고정한다.
계약
event
내부 함수 호출보다 사용자가 일으킨 행동의 결과를 본다.
콜백 payload는 도메인 값 기준으로 검증한다.
user action
async
로딩 중, 성공, 실패 상태를 각각 테스트한다.
setTimeout sleep보다 화면 조건을 기다린다.
stable wait
컴포넌트 테스트 품질
검증 흐름
render(<Form onSubmit={fn
overflow-wrap: break-word;
word-break: keep-all;
} />)
await user.type(input, "hello")
await user.click(button)
expect(fn).toHaveBeenCalledWith({ value: "hello" })