[javascript] Jest에서의 테스트 간 데이터 공유 방법은 어떻게 되는가?

Jest는 JavaScript를 위한 유명한 테스팅 프레임워크입니다. Jest에서는 테스트 간에 데이터를 공유하기 위해 몇 가지 방법을 사용할 수 있습니다. 여기에는 전역 변수, 모듈 변수, 그리고 mocking이 포함됩니다.

  1. 전역 변수(Global Variables): Jest에서는 디폴트로 global 객체를 사용할 수 있습니다. 이 객체는 테스트 모듈에서 하나의 테스트에서 다른 테스트로 데이터를 전달하는 데 사용될 수 있습니다. 다음은 global 객체를 사용하여 데이터를 공유하는 예시입니다.

    // 테스트 모듈 1
    global.sharedData = "Hello, world!";
       
    // 테스트 모듈 2
    test("공유된 데이터 사용하기", () => {
      expect(global.sharedData).toBe("Hello, world!");
    });
    
  2. 모듈 변수(Module Variables): Jest에서는 ES6의 importexport 구문을 통해 모듈 변수를 사용할 수 있습니다. 다음은 모듈 변수를 사용하여 데이터를 공유하는 예시입니다.

    // 테스트 모듈 1
    let sharedData = "Hello, world!";
    export { sharedData };
       
    // 테스트 모듈 2
    import { sharedData } from "./testModule1";
       
    test("공유된 데이터 사용하기", () => {
      expect(sharedData).toBe("Hello, world!");
    });
    
  3. Mocking: Jest에서는 테스트 모듈에 대한 mocking을 사용하여 데이터를 공유할 수 있습니다. jest.mock() 함수를 사용하여 모듈을 가짜(mock) 모듈로 대체할 수 있습니다. 이를 통해 테스트 간에 모듈의 상태와 동작에 접근할 수 있습니다. 다음은 mocking을 사용하여 데이터를 공유하는 예시입니다.

    // 테스트 모듈 1
    export const sharedData = "Hello, world!";
       
    // 테스트 모듈 2
    jest.mock("./testModule1");
    import { sharedData } from "./testModule1";
       
    test("공유된 데이터 사용하기", () => {
      expect(sharedData).toBe("Hello, world!");
    });
    

이러한 방법을 사용하여 Jest에서 테스트 간에 데이터를 공유할 수 있습니다. 선택한 방법은 테스트 환경과 요구 사항에 따라 다를 수 있으므로, 적절한 방법을 선택하여 사용하시면 됩니다.

자세한 내용은 Jest 공식 문서를 참조하시기 바랍니다.