내일배움캠프 TIL (230305): Jest descibe() / it() 구문 차이 / BDD 스타일

Jiumn·2023년 3월 25일
0

Jest로 테스트 코드 작성하기

describe()와 it() 구문의 차이

테스트 코드는 describe()it() 구문으로 구성

  • describe(): 테스트 스위트(Suite)를 작성하는 블록
    테스트 스위트는 의미 있는 단위로 묶은 것
    describe(케이스의 이름: string, 수행될 코드(콜백함수))

  • it(): 특정 테스트 시나리오를 작성
    서로 의존관계가 존재하지 않도록 작성하는 것이 중요

BDD(Behavior) 스타일 테스트 코드 작성

Given / When / Then

  • Given: 해당 테스트 케이스가 동작하기 위해 갖춰져야 하는 선행조건 '어떤 상황이 주어졌을 때'
  • When: 테스트하고자 하는 대상 코드를 실행합니다. '대상 코드가 동작한다면'
  • Then: 대상 코드의 수행 결과를 판단 '기대한 값과 수행 결과가 맞는지'
  • beforeAll(): 테스트 스위트 내의 모든 케이스 수행 전 한 번만 실행
  • beforeEach(): 각 테스트 케이스가 수행되기 전마다 수행
  • afterEach(): 테스트 케이스 수행된 후
  • afterAll(): 모든 테스트 케이스 수행한 후

테스트는 테스트하고자 하는 대상의 동작에만 집중해야 함
주입받거나 생성해서 사용한 외부 모듈이나 객체는 테스트의 대상이 아님
외부 모듈을 임의의 객체로 다루는 것: 테스트 더블

Nest can't resolve dependencies Error

해당 service는 repository가 필요한데 test Module이 repository를 제공하지 않아 생기는 에러다.

service 레이어의 unit test 코드 작성 시 사용되는 모든 repository를 의존성 주입해줘야 한다.

profile
Back-End Wep Developer. 꾸준함이 능력이다.

0개의 댓글