[nest.js] Jest

김민재·2025년 4월 28일

nest.js

목록 보기
55/63

🦷 Jest

  • 페이스북에서 개발한 자바스크립트 테스트 프레임워크

  • JavaScript 및 TypeScript 애플리케이션의 유닛 테스트, 통합 테스트, end-to-end 테스트를 작성하는 데 사용된다.

  • Jest는 사용하기 쉽고 강력한 기능을 제공하여 개발자가 코드를 안정적으로 테스트할 수 있도록 도와준다.

  • nest.js에서는 기본적으로 Jest를 제공하기 때문에 따로 모듈을 설치할 필요가 없다.

  • spec.ts라고 써있는 파일은 테스트를 위한 파일이다.

🚿 Jest 특징

  • 사용이 간편하고 설정이 적다.

  • 빠르고 병렬 처리되는 테스트 실행이 가능하다.

🚇 Matcher

  • Jest에서 기대하는 값과 실제 값을 비교하는 함수이다.

  • 테스트 코드에서 expect() 를 사용하여 결과가 예상대로 왔는지 확인하는 역할을 한다.

ex) toBe Matcher 함수이다.

expect(2 + 2).toBe(4);

🧭 기본 Matcher 함수

- toBe(value): 값이 같은지 확인한다.
- toEqual(value): 객체의 모든 값이 같은지 재귀적으로 확인한다.
- toBeNull(): toBe(null)과 같고, Falsy일때 조금 더 명확한 에러 메세지가 발생한다.
- toBeUndefined(): 값이 undefined인걸 확인한다.
- toBeDefined(): 위에와 반대이다.
- toBeTruhty(): JS에서 인지하는 true 값을 반환하는지 확인한다.
- toBeFalsy(): toBeTruthy()의 반대
- toBeNan(): 숫자가 아님을 확인한다.

⏰ 숫자 Matcher 함수

- toBeGreaterThan(number): 값이 더 큰지 확인한다.
- toBeGreaterThanOrEqual(number): 값이 더 크거나 같은지 확인한다..
- toBeLessThan(number): 값이 더 작은지 확인한다.
- toBeLessThanOrEqual(number): 값이 더 작거나 같은지 확인한다.
- toBeCloseTo(number, 소수점): 특정 소수점까지 같은 값인지 확인한다.

🕰 함수 Matcher 함수

- toHaveBeenCalled():mock function이 호출되었는지 확인한다. (많이 사용)
- toHaveBeenCalledTimes(number): mock function이 지정된 횟수만큼 호출되었는지 확인한다. (많이 사용)
- toHaveBeenCalledWith(arg1, arg2): mock fucntion이 특정 파라미터와 함께 호출되었는지 확인한다. (많이 사용)

- toHaveBeenLastCalledWith(value): mock function이 마지막으로 호출될 때 특정 파라미터와 함께 호출되었는지 확인한다.
- toHaveReturned(): mock function이 값을 반환했는지 확인한다, (에러x)
- toHaveReturnedTimes(number): mock function이 값을 지정된 횟수만큼 반환했는지 확인한다.
- toHaveReturnedWith(value): mock function이 특정 값을 반환했는지 확인한다.
- toHaveLastReturnedWith(value): mock function이 마지막으로 특정 값을 반환했는지 확인한다.
- toHaveNthReturnedWity(nthCall, value): mock function이 n번째로 특정 값을 반환했는지 확인한다.

🖊 배열 및 객체 Matcher 함수

- toContain(item): 배열 또는 문자열에 특정 항목이 포함되어 있는지 확인한다..
- toContainEqual(item): 배열에 구조적으로 같은 항목이 포함되어 있는지 확인한다..
- toHaveLength(number): 배열, 문자열 또는 객체의 길이/크기가 특정 값과 일치하는지 확인한다.
- toHaveProperty(key, value?): 객체에 특정 경로의 속성이 존재하고, 선택적으로 해당 속성의 값이 특정 값과 일치하는지 확인한다.
- toMatchObject(object): 객체가 특정 객체와 부분적으로 일치하는지 확인한다.

🧤 에러 Matcher 함수

- toThrow(error?): 함수가 호출될 때 특정 오류를 던지는지 확인한다.

🧾 기타 Matcher 함수

- toStricEqual(value): 객체가 구조적으로 완벽히 동일한지 확인한다.
- toBelnstanceOf(class): 값이 특정 클래스의 인스터스인지 확인한다.
- toMatch(refexp | string): 문자열이 정규 표현식 또는 문자열과 일치하는지 확인한다.
- expect.anything(): 아무 값이나 허용하지만 null이나 undefined는 제외한다.
- expect.any(constructor): 특정 생성자의 인스턴스인지 확인한다.
- expect.arrayContaining(array): 입력된 array가 비교 대상 array의 전부 포함되는지 확인한다.
- expect.objectContaining(object): 입력된 객체가 비교 대상 객체의 전부 포함되는지 확인한다.
- expect.stringContaning(string): 특정 문자열이 포함 돼있는지 확인한다.
profile
개발 경험치 쌓는 곳

0개의 댓글