FrontEnd

견고한 JS 소프트웨어 만들기 강의노트2

SambaLim 2019. 9. 15. 23:58
2_모듈패턴으로_기존_코드_개선하기

인프런에서 견고한 JS 소프트웨어 만들기를 수강하며 적은 강의노트입니다.

보다 자세한 내용은 강의를 통해 확인하실 수 있습니다.

 

클릭카운터 모듈 - 스펙1

전역공간에 있는 counter변수를 ClickCounter안에서 관리

ClickCounter모듈의 getValue()는 카운터 값을 반환한다.

 

테스트 코드 작성 (적색단계)

 

모듈 생성 (녹색단계)

 

상수 변경 (리팩터단계)

 

클릭카운터 모듈 - 스펙2

테스트 코드 작성 (적색단계)

 

모듈 생성 (녹색단계)

중복코드를 제거하기 위한 재스민 함수

변경결과

초기값이 0이 아닌경우를 수정

 

클릭카운터뷰 모듈 - 스펙1

카운터 데이터는 DOM에 반영되어야 함

데이터를 출력하고 이벤트 핸들러를 바안딩하는 일을 담당

ClickCounterView모듈의 updateView()는 카운트 값을 출력

테스트 코드 작성 (적색단계)

 

모듈 생성 (녹색단계)

 

ClickCountView에 의존성 주입이 되었나...?

테스트 코드

모듈 수정

 

클릭카운터뷰 모듈 - 스펙2

ClickCountView모듈의 increaseAndUpdateView()는 카운트 값을 증가하고 그 값을 출력한다.

  • ClickCounterincrease 함수를 실행한다.
  • updateView함수를 실핸한다.

 

테스트 더블(스파이스, spies)

단위 테스트 패턴으로, 테스트하기 곤란한 컴포넌트를 대체하여 테스트하는 것으로 특정한 동작을 흉내만 낼뿐이지만 테스트 하기에는 적합하다.

  • Dummy: 인자를 체우기 위해 사용.
  • Sturb: 더미를 개선하여 실제 동작하게끔 만든 것. (리턴값을 하드코딩)
  • Spy: 스텁과 유사. 내부적으로 기록을 남기는 추가기능.
  • Fake: 스텁에서 발전한 실제 코드, 운영에서는 사용할 수 없음. (실제 값을 리턴)
  • Mock: Dummy, Sturb, Spy를 혼합한 형태.

재스민에서 사용법

 

테스트 코드 작성 (적색단계)

모듈생성 (녹색단계)

 

클릭카운터뷰 모듈 - 스펙3

클릭 이벤트가 발생하면 increaseAndUpdateView()를 실행한다.

테스트 코드 작성(적색단계)

increaseAndUpdateView를 바인딩할 돔 엘리먼트(triggerEl)을 주입받자

모듈생성 (녹색단계)