리팩토링
리팩토링하는 목적
- 개발 속도가 지연되는 것을 개선하기 위해서
- 새로운 기능을 추가하기 용이하게 하기 위해서
리팩토링 과정
- 전체 흐름에서 비효율적인 코드를 줄이기 (중복 요소 등)
- 긴 함수 줄이기
- 전역에 있는 변수들 불필요하면 줄이기
- 코드 간의 의존성 줄이기
테스트코드 작성
- 테스트코드를 작성해야 리팩토링이 가능
- 어? 왜 수정했는데 다른게 오류가 나지?!
- 테스트코드와 리팩토링은 한 몸임
- 테스트코드 없는 리팩토링은 불가능함
- 품질 관리 === 테스트 코드 작성
TDD
- Test Driven Development
- 순수함수가 Unit test 하기 좋음
Test 종류
- Unit test: 함수 단위, 객체의 메소드 단위, 객체 그 자체
- Integration test: 단위 기능이 합쳐진 기능에 대한 테스트
- System test: 시스템이 통합 테스트임
- Acceptance Test: 고객이 ok 할때까지 한다
- UI test: FE 에서 나온 개념. UI 단위 테스트
- UX test: 클릭됐을 때 잘되는지 확인
- E2E test: End-to-End test
CI/CD
- Continuous integration
- Continuous Delivery & Continuous Deployment
UX 테스트 어떻게 해야할까?
- 커스텀 이벤트를 만들고 그 이벤트의 출력을 테스트
- on 은 이벤트가 등록되었는지
- 함수를 가짜로 만들어서 실행되는지 보기
- 순수해야 테스트가 잘됨. 함수 이름을 잘 줘야 실행 가능함.
Unit Test Runner
- mocha, jest...
- Deep equality...
given / when / then