본문 바로가기

포트폴리오/학습

인프런] 김정환 강사님의 테스트주도개발(TDD)을 통해 견고한 js 소프트웨어 만들기 - 1

[본 포스팅은  인프런 -"김정환 강사님의 테스트주도개발(TDD)을 통해 견고한 js 소프트웨어 만들기" 강의를  개인 학습용으로 정리한 내용입니다.]


  • Tdd 목적

-일부 타 프로그래밍 언어에는 컴파일 과정에서 문법 검사를 시행하지만 js같은 경우 직접 결과를 확인해야 하는 문제가 발생한다.


  • 단위테스트

단위(UNIT): 특정 조건에서 어떻게 작동해야 하는지 정의. (함수로 표현)

 -단위테스트의 단계

1. 준비(arrange) : 인풋을 준비하는 단계

2. 실행(act) : 인풋을 전달해서 함수를 실행하는 단계

3. 단언(assert) : 결과를 검증하는 단계.


  • 테스트 주도개발의 패턴

적색(Red)-녹색(Green)-리팩터(Refactor)

1. 레드단계 : 기능을 테스트할 수 있는 테스트 코드를 만듬.실패하는 테스트 코드를 만드는 단계(위의 단위테스트. 여기서는 테스트 실패. 기능코드가 없기 때문.)

2. 그린단계 : 기능코드를 작성. 테스트에 통과할 정도로만 구현, 테스트에 성공

3. 블루단계 : 추상화,확장가능,중복제거의 리펙터 과정을 거침.(코드 개선시 기존 로직이 망가질 수도 있어서 부담을 갖게 됨

(테스트 코드의 성공 여부에 따라서 내가 작성한 코드의 리팩토링에 대한 확신을 갖는 단계)


핵심 : 레드-그린-블루를 반복, 테스트하기 쉬운 코드를 만들고 함수당 하나의 기능을 하도록 설계하게 됨.



재스민 프레임웍을 설치, TDD 개발환경 구축방식

- standalone 방식 : 모든 자스민 코드를 브라우저에 올려서 실행하는 방법. 실행결과를 간단하게 확인 가능하지만, 실무에서 거의 사용하지 않음.

- karma라이브러리 와 함께 설치하는 방식 .(자동화) : 실무에서 주로 사용하는 방식.


1. https://github.com/jasmine/jasmine/releases 에서 자스민 다운로드.(2.7.0버전 기준)

-testrunner : 테스트 코드를 실행하는 파일(standalone으로 설치한 자스민은 html파일이 테스트 러너가 됨. karma방식은 karma가 testrunner가 됨.)

2. "git checkout -f install-jasmine" 명령어 실행&설치 (윈도우용 git은 https://www.git-scm.com/downloads 에서 다운로드.)