* A single function or class.
* 최소한의 코드 조각
* 개발자가 자신이 구현한 Unit이
생각한대로 작동하는 지 확인하는 행위
* 유닛 테스트를 100% 다 구성하고 코드가 Pass를 하면
* [ ] 문제 없음을 확신하며 바로 배포 준비에 들어간다
* [ ] 좀 불안. 별도로 추가 테스트가 필요할 것 같다
본인이 구현한 코드가 어떻게 작동하는 지 묘사한 설명서(사양서)
* 테스트 코드를 보면 처음에는 낯선 단어들이 나옴
* describe
* context
* it
describe(“getWordList”, () => { // test 하고자하는 함수 이름 혹은 클래스(컴포넌트) 이름
context(“when user is logged in”, () => { // 어떤 조건인지를 명시하고 싶을때
it(“returns 200 status code”, () => {
// 실질적으로 테스트 하려는 것
})
it(“returns word list data code”, () => {
// 실질적으로 테스트 하려는 것
})
})
})
* Integration Test
* End to End Test
* QA 부서
어느 정도는 공감을 하는 부분 (개인 취향)
**하지만** 다음과 같은 경우에는 꼭 필요
본인의 코드를 다른 사람과 공유할 때
오픈 소스, 팀 단위의 프로젝트 작업
코드를 **잘** 짜게끔 유도를 해준다
바람직한 경우, 예외의 경우
리팩토링을 상대적으로 마음 편하게 할 수 있다
하나의 js 파일 => 하나의 spec.js 파일
Reducers
Actions, Action Creator
React.Components
* Render => 보여지는 것을 테스팅
* Component Did Mount 와 같은 생명 주기 핸들러
* 그외 로직