<aside> ❗ JS 테스팅 프레임워크인 jest 를 통한 JS, 리액트의 컴포넌트 등의 로직을 테스트
</aside>
npm i -D jest
npx jest --watchAll // 파일의 코드가 변경될 때마다 자동으로 테스트한다.
describe("테스트 묶음 1", () => {
**test**("테스트 1", () => {
expect(1 + 2).toBe(3)
})
**it**("테스트 2", () => {
expect(1 * 2).toBe(2)
})
})
expect({ age: 30 }).**toEqual**({ age: 30 }) // 객체 간의 비교
expect('hello').**toHaveLength**(5) // 문자열의 길이 테스트
expect({ name: 'mark' }).toHaveProperty('name', 'mark') // 객체의 속성과 속성값 비교
expect({ name: 'mark' }.name).toBeDefined() // 값의 존재 여부 비교
expect({ name: 'mark' }.age).toBeDefined() // 에러
expect('').toBeFalsy() // falsy 여부 비교
expect('있음').**not**.toBeFalsy()
expect(NaN).toBeFalsy()
expect(null).toBeFalsy()
it('RTL', () => {
// 쿼리 함수 뽑아 내기
const { getByText } = render(<MyBotton />)
// 쿼리 함수로 특정 요소 찾기
const btn = getByText('버튼')
// jest-dom matcher(DOM 에 특화된 matcher) 를 통해 요소 테스트하기
expect(btn).toBeDisabled()
// fireEvent 객체로 특정 요소에 이벤트 부여하기
fireEvent.click(btn)
})