JavaScript

Jest를 사용한 JavaScript Test - 심화

인어공쭈 2023. 10. 19. 17:06

 

 

이번글에서 저번에 다뤘던거와 비슷하지만 조금더 응용해서 테스트 코드를 작성해보자.

 

좀 더 복잡한 코드에선 아래에 코드로 적용해보는것이 좋을거 같다.

 

1. 모의 (Mocks)
모의는 외부 의존성에 대한 가짜 객체로, 함수 호출 및 동작을 추적하고 기대 대로 모의 객체를 조작할 수 있다.

// 사용자 서비스 예시
class UserService {
  async getUser(id) {
    // 실제 사용자 데이터베이스에서 사용자를 가져오는 코드
  }
}

// UserService 모의 객체 생성
const mockUserService = {
  getUser: jest.fn(),
};

2. 스텁 (Stubs)
스텁은 함수의 동작을 가짜로 대체하여 특정 동작을 흉내내도록 하는데 사용된다.

// 네트워크 요청 모듈 예시
const request = require('request');

// 네트워크 요청 함수 스텁
request.get = jest.fn().mockImplementation((url, callback) => {
  callback(null, { statusCode: 200 }, '가짜 응답 데이터');
});

3. 스파이 (Spies)
스파이는 함수 호출 및 동작을 추적하고 기록하는데 사용된다. 

// 스파이 예시
const myFunction = jest.fn();

myFunction('인수1');
myFunction('인수2');

expect(myFunction).toHaveBeenCalledTimes(2);
expect(myFunction).toHaveBeenCalledWith('인수1');
반응형