각 테스트에서 Jest Mock 함수 반환 값 변경하기를 위한 스냅샷 테스팅 방법

Jest 테스트에서 Mock 함수의 반환값을 각각의 테스트마다 변경하는 방법 Jest를 사용하여 JavaScript 코드를 테스트하는 경우, 각 테스트마다 Mock 함수의 반환값을 변경해야 할 때가 있을 수 있습니다. 이는 Mock 함수의 반환값을 다양한 조합으로 테스트하고 싶을 때 …

title_thumbnail(각 테스트에서 Jest Mock 함수 반환 값 변경하기를 위한 스냅샷 테스팅 방법)

Jest 테스트에서 Mock 함수의 반환값을 각각의 테스트마다 변경하는 방법

Jest를 사용하여 JavaScript 코드를 테스트하는 경우, 각 테스트마다 Mock 함수의 반환값을 변경해야 할 때가 있을 수 있습니다. 이는 Mock 함수의 반환값을 다양한 조합으로 테스트하고 싶을 때 특히 유용합니다. 이 블로그 포스트에서는 Jest 테스트에서 이를 어떻게 구현할 수 있는지 살펴보겠습니다.

모듈 모킹하기

우선, Mock 함수를 포함하는 모듈을 모킹하고 테스트 파일에서 이를 가져올 수 있습니다:

import { navigationEnabled, guidanceEnabled } from '../../../magic/index';

다음으로, jest.mock 함수를 사용하여 모듈을 모킹하여 가져온 함수들이 스파이가 되도록 할 수 있습니다:

jest.mock('../../../magic/index', () => ({
    navigationEnabled: jest.fn(),
    guidanceEnabled: jest.fn()
}));

반환값 변경하기

모듈을 모킹한 후에는 mockImplementation 또는 mockReturnValueOnce 함수를 사용하여 Mock 함수의 실제 구현을 변경할 수 있습니다.

navigationEnabled.mockImplementation(() => true);
// 또는
navigationEnabled.mockReturnValueOnce(true);

다음 테스트에서는 반환값을 다른 값으로 변경할 수 있습니다:

navigationEnabled.mockImplementation(() => false);
// 또는
navigationEnabled.mockReturnValueOnce(false);

전체적인 예시

이러한 기법을 Jest 테스트에서 어떻게 사용할 수 있는지 전체적인 예시를 살펴보겠습니다:

describe('테스트 스위트', () => {
  it('navigationEnabled와 guidanceEnabled에 대해 true를 반환해야 함', () => {
    navigationEnabled.mockReturnValueOnce(true);
    guidanceEnabled.mockReturnValueOnce(true);
    
    // 여기에 테스트 코드 작성
  });
  
  it('navigationEnabled와 guidanceEnabled에 대해 false를 반환해야 함', () => {
    navigationEnabled.mockReturnValueOnce(false);
    guidanceEnabled.mockReturnValueOnce(false);
    
    // 여기에 테스트 코드 작성
  });
});

각 테스트마다 Mock 함수의 반환값을 변경함으로써 다양한 시나리오를 테스트하고 코드의 정확한 동작 여부를 확인할 수 있습니다.

결론

이 블로그 포스트에서는 Jest에서 Mock 함수의 반환값을 각 테스트마다 변경하는 방법에 대해 알아보았습니다. 모듈을 모킹하고 Mock 함수를 가져오며 mockImplementation이나 mockReturnValueOnce을 사용하여 다양한 테스트 시나리오에 대해 Mock 함수의 동작을 쉽게 변경할 수 있습니다. 이를 통해 코드를 철저하게 테스트하고 신뢰성을 보장할 수 있습니다. 즐거운 테스트하세요!

참고 자료 : 

reactjs

Leave a Comment