Unit test in javascript
1
- 기본 개념
- 입력값과 반환값이 있으면 테스트 비교적 쉬움
- 브라우저 렌더링 버그는 테스트X
- 테스트 케이스 만들기 까다로운거
- DOM을 조작한 결과
- 복잡한 이벤트(drag…)
- 비동기 테스트(Ajax, setInterval…)
- Qunit API
- 테스트 케이스 만들 때 유의사항
- 테스트 케이스 의존관계 없어야함
- Given/When/Then 구분해 만들자
- 모든 코드에 테스트 케이스는 만들지 않는다
- 실습
2
- DOM 조작 후 테스트 방법
- 유의할 점
- 브라우저마다 렌더링된 마크업이 다를 수 있음
- innerHTML이 브라우저마다 대/소문자로 반환
- 속성의 위치가 다름
- 실습
3
- 이벤트(Click, mouseover…)관련 테스트
- 가짜로 이벤트를 실행시켜 테스트하는 방법
- 이벤트에 의존하지 않게 테스트하는 법
- 유의할 점
- 가짜로 이벤트를 만들어 처리하면 복잡한 인터렉션은 테스트하기 까다로움
- 실습
4
- Ajax 테스트 법
- 실제 Ajax통신 후 테스트
- Ajax 의존성 없이 테스트
- 유의할 점
- 동기로 동작하는 경우는 문제없음
- 비동기 통신의 테스트는 정상적이어도 fail될 수 있음
- 대기하여 테스트 하거나 //현업에선 이걸 가장 많이 씀
- 로직을 분리하거나
- Mock을 이용하여 테스트 //이게 가장 깔끔
- 실습