원서 : 자바스크립트 코딩의 기술

 

목표

- 복잡한 코드에 테스트를 추가할 생각하지 말고 테스트 가능한 코드를 작성하자!

함수

자바스크립트의 시작은 함수 입니다. 고차 함수, 커링, 클로저, 스코프의 this...

 

테스트하기 쉬운 함수를 작성합시다!

  1. 테스트 코드를 작성하기 쉬운 환경을 찾고 만들어라.
    1. 외부 서비스, 설정파일, 네트워크 통신을 대신하는 모의 객체(mock)를 생성합시다
  2. 테스트 코드를 작성해라.
  3. 테스트 코드를 작성하기 어렵다면 코드를 변경해라. ( 리팩토링 )

테스트를 위한 개념

- 스텝 : 외부 코드를 덮어 써서 명시적인 결과를 반환 

      함수의 내부 논리를 모두 제거하고 결과만 선언하여 토막내기 때문에 붙여진 이름

 

- 모의 객체 : 원본 객체를 대체한 후, 원본 객체가 수신할 메시지와 호출 메소드를 바탕으로 단언문을 작성

 

스텝과 모의 객체의 차이점 : 모의 객체를 사용할 때는 코드를 호출하기 전에 기댓값을 설정

 

스파이와 모의 객체의 차이점 : 스파이가 어떻게 호출되었는지 확인 ( ex: 몇 번 호출되었는 지 확인 )

 

외부 의존성 낮추기

의존성을 인수로 전달하는 것을 의존성 주입이라고 합니다. 외부에서 사용하는 것을 인수로 전달받으면 의존성도 낮출 수 있으며 테스트도 용이합니다.

 

...

블로그 이미지

_김은찬

두번 다시는 꺾이지 않으리

,