rimo030 / nestjs-e-commerce-frame

✏️ NestJS로 구현한 Commerce API
45 stars 1 forks source link

모킹(mocking) #73

Open rimo030 opened 6 months ago

rimo030 commented 6 months ago
          모킹에 대해서 issue를 만들고 학습하세요.

_Originally posted by @kakasoo in https://github.com/rimo030/nestjs-e-commerce-frame/pull/72#discussion_r1421778817_

rimo030 commented 6 months ago

Mocking

단위 테스트를 작성할 때, 해당 코드가 의존하는 부분을 가짜(mock)로 대체하는 기법.

왜 ? 테스트 하고싶은 기능이 다른 기능들과 엮여있을 경우(의존) 정확한 테스트를 하기 힘들기 때문이다.

예를 들어 컨트롤러에서 정보를 추출한 후 데이터베이스에 넣어주는 단위테스트를 하고 싶다고 하면

컨트롤러의 로직이 잘 작동하는지에 집중을 하기위해 데이터베이스는 "대충 이런 값을 반환한다고 치자"라고 가정하고 테스트 한다는 것이다.

참고자료 : [JEST] 📚 모킹 Mocking 정리 - jest.fn / jest.mock /jest.spyOn

rimo030 commented 6 months ago

Jest mocking

Jest는 가짜 함수(mock functiton)를 생성할 수 있도록 jest.fn() 함수를 제공 한다.

const mockFn = jest.fn( (name) => `I am ${name}!` );
console.log(mockFn("rimo")); // I am rimo!