[javascript] Jest에서의 테스트 환경에 대한 상태 공유 방법은 어떻게 되는가?

Jest에서는 여러 테스트 파일에서 공유할 수 있는 상태를 유지하기 위해 여러 가지 방법을 제공합니다. 일반적으로는 각 테스트 파일은 독립적으로 실행되지만, 때로는 특정 상태를 테스트 간에 공유해야 할 수 있습니다.

여기서는 Jest에서 테스트 환경에 대한 상태를 공유하는 몇 가지 예시를 살펴보겠습니다.

  1. 전역 변수 사용: Jest는 전역 변수를 사용하여 상태를 공유할 수 있도록 지원합니다. 예를 들어, global 객체에 상태를 저장하고 필요한 곳에서 접근할 수 있습니다. 이 방법은 간단하고 편리하지만, 오버사용할 경우 테스트 간의 의존성을 증가시킬 수 있습니다.
global.sharedState = {
  value: 'shared value',
};
  1. 모듈을 사용한 상태 공유: Jest는 모듈을 통해 상태를 공유하는 것을 권장합니다. 하나의 모듈을 만들고 그 안에 상태를 저장하고 내보낼 수 있습니다. 다른 테스트 파일에서는 해당 모듈을 가져와서 해당 상태에 접근할 수 있습니다.
// sharedState.js
let state = {
  value: 'shared value',
};

module.exports = state;
// testFile1.test.js
const sharedState = require('./sharedState.js');

test('Test 1', () => {
  expect(sharedState.value).toBe('shared value');
});
  1. 전역 setup 함수 사용: Jest에서는 jest.setup.js 파일에 전역 setup 함수를 설정하여 테스트 환경 전체에서 상태를 설정하고 공유할 수 있습니다. 이를 사용하면 테스트 파일마다 상태를 세팅하는 번거로움을 줄일 수 있습니다.
// jest.setup.js
const sharedState = require('./sharedState.js');
global.setup = () => {
  sharedState.value = 'shared value';
};
// testFile1.test.js
test('Test 1', () => {
  expect(global.sharedState.value).toBe('shared value');
});

이러한 방법들을 통해 Jest에서 테스트 환경에 대한 상태를 공유할 수 있습니다. 하지만 상태 공유를 사용할 때는 주의해야 합니다. 테스트 간에 의존성이 생길 수 있고, 상태를 적절하게 초기화하지 않으면 결과가 예측할 수 없을 수도 있습니다. 따라서, 상태 공유를 적절하게 사용하고 테스트 간의 독립성을 유지하기 위해 주의해야 합니다.

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