TIL: 리팩토링, 테스트코드

Snoop So·2023년 4월 18일
0

리팩토링

리팩토링하는 목적

  • 개발 속도가 지연되는 것을 개선하기 위해서
  • 새로운 기능을 추가하기 용이하게 하기 위해서

리팩토링 과정

  1. 전체 흐름에서 비효율적인 코드를 줄이기 (중복 요소 등)
  2. 긴 함수 줄이기
  3. 전역에 있는 변수들 불필요하면 줄이기
  4. 코드 간의 의존성 줄이기

테스트코드 작성

  • 테스트코드를 작성해야 리팩토링이 가능
  • 어? 왜 수정했는데 다른게 오류가 나지?!
  • 테스트코드와 리팩토링은 한 몸임
  • 테스트코드 없는 리팩토링은 불가능함
  • 품질 관리 === 테스트 코드 작성

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

  • 테스트에 필요한 값 실행
  • 실행
  • 테스트

0개의 댓글