⌨️/Node.js

[jest] nestjs 테스트 코드

S0 2024. 4. 22. 04:03

 

테스트 코드를 공부하면서 작성하던 중에

 

let service: CollectionService;

이러한 작성 방식과 

 

const collectionService = {
    getMyColList
    getUserColList
    getMyCol
    createCol
    updateCol
    deleteCol
    addContentToCollection
    removeContentFromCollection
  }

이러한 작성 방식은 어떤 차이가 있는 건지 궁금해져서 정리해봤다.

(예제는 현재 작성 중인 테스트 코드 파일에서 가져왔습니다)

 


1.

첫번째 방식은 CollectionService 클래스의 인스턴스를 생성하고, 해당 인스턴스를 사용하여 테스트를 진행한다.

(이것을 service라는 변수에 할당)

이렇게 실제 클래스를 가져오기 때문에 실제하는 데이터나 로직을 테스트 하기에 적합하다.

그러나 외부 리소스에 의존하기 때문에 시간이 더 오래 걸릴 수 있다.

 

2.

두번째 방식은 CollectionService에 있는 각 메서드를 Mock(모의, 가짜)으로 대체한 객체를 생성한다.

이 객체는 실제 CollectionService의 인스턴스가 아니기 때문에 실제하는 데이터나 로직을 처리하지 않는다.

이러한 방식을 사용하면 테스트 중 특정 메서드가 호출되었을 때 어떤 값을 반환하는지 미리 설정이 가능하다.

(의존하는 객체 완전 제어 가능)