[모던 JavaScript 튜토리얼] - [3.5] 테스트 자동화와 Mocha

IRISH·2024년 1월 22일
0

JS

목록 보기
39/80


학습 요약

테스트는 왜 해야하는가?

  • 각 유즈 케이스를 생각하며 코드를 작성하게 되는데, 수많은 케이스를 상기하면서 코드를 수정하는 것은 거의 불가능에 가깝기 때문이다.

Behavior Driven Development

  • 테스트(test), 문서(documentaion), 예시(example)을 한대 모아놓은 개념이다.
  • 코드를 작성하기 전에, 코드가 무슨 일을 하는지 상상한 후 이를 자연어로 표현해야한다.
  • 이때 만들어진 산출물은 명세서(Specification) 또는 짧게 스펙(spec)이라고 부른다.
  • 스펙의 구성요소
    1. describe("title", function() { ... }) : 구현하고자하는 기능( 제목, it()의 집합)
    2. it("유즈 케이스 설명", function() { ... }) : 특정 유즈 케이스에 대한 기능(설명, 테스트 케이스 함수)
    3. assert.equal(value1, value2) : 검증, value1, 2가 서로 다르면 에러가 발생함.
  • 개발순서
    1. 명세서 초안 작성.(기본적엔 테스트도 작성)
    2. 초안을 보고 코드 작성
    3. Mocha(테스트 F/W)를 이용하여 명세서 실행. (에러가 발생하지 않을 때 까지 코드 수정)
    4. 모든 테스트를 통과하는 코드 "초안" 완성.
    5. 명세서에 지금까지 고려하지 않았던 유즈케이스 추가. (에러가 발생하지 않을 때 까지 코드 수정)
    6. 반복
  • 고려사항
    1. SPEC 개선하기 : 더 많은 유즈케이스를 추가해보자.
    2. 테스트 하나에선 한 가지만 확인하기 : 연관이 없는 사항 두 개를 점검한다면 분리한다.
    3. 더 많은 테스트를 위해 for로 it 블록을 자동으로 생성하기
  • before / after : 전체 테스트가 실행되기 전에 실행, 전체 테스트가 실행된 후에 실행
  • beforeEach / afterEach : 매 it이 실행되기 전에 실행, 매 it이 실행된 후에 실행
  • 다양한 assertion 활용 ( euqal, strictEqual, notEqual, isTrue, isFalse)
  • it 블록 하나에 여러개의 테스트를 담으려하면 안된다. 차라리 여러개의 it을 쓰고 it.only를 통해 하나만 실행.
profile
#Software Engineer #IRISH

0개의 댓글