• 카테고리

    질문 & 답변
  • 세부 분야

    프론트엔드

  • 해결 여부

    해결됨

4.3. 강의와 깃헙 소스코드가 다른 부분

24.02.24 15:04 작성 24.02.24 15:06 수정 조회수 136

1

안녕하세요. 강의 잘 듣고 있습니다.

다름이 아니라 강의와 깃헙 소스코드가 달라서 문의드려요.

 

mocks/zustand.js의 코드인데요.

const { create: actualCreate } = await vi.importActual('zustand');
import { act } from '@testing-library/react';

// 앱에 선언된 모든 스토어에 대해 재설정 함수를 저장
const storeResetFns = new Set();

// 스토어를 생성할 때 초기 상태를 가져와 리셋 함수를 생성하고 set에 추가합니다.
export const create = createState => {
  const store = actualCreate(createState);
  const initialState = store.getState();
  storeResetFns.add(() => store.setState(initialState, true));
  return store;
};

// 테스트가 구동되기 전 모든 스토어를 리셋합니다.
beforeEach(() => { // 👈 이 부분
  act(() => storeResetFns.forEach(resetFn => resetFn()));
});

깃헙 소스코드는 위와 같이 beforeEach를 사용하지만 강의에서는 afterEach로 설명해주시고 있습니다.

주석도 마찬가지로 다릅니다.

무엇이 맞는 걸까요?

답변 1

답변을 작성해보세요.

1

안녕하세요! 우선 강의 들어주셔서 감사합니다.

남겨주신대로 내용은 코드를 최종본으로 이해하시고 강의를 진행해주시면 감사하겠습니다.

확인을 해봤더니 이전 편집 내용이 남아 있었던 것 같네요. 😅

결국 해당 내용은 초기화에 목적이 있기 때문에 모든 테스트가 진행된 뒤 호출하거나 진행 전 호출하는 방식으로 진행해주시면 상관 없을 것 같습니다.

감사합니다!

Kate님의 프로필

Kate

질문자

2024.02.24

답변 감사합니다.

조금 헷갈려서 그런데요. '코드를 최종본으로 이해하면 되나, beforeEach든 afterEach든 크게 상관 없다.'라고 이해해도 될까요? :)

안녕하세요!

제가 제대로 이해했는지 정확하지는 않지만 우선 저희가 준비한 강의 의도는 코드 기준이 저희의 의도와 맞으며 afterEach와 beforeEach의 경우 호출되는 컨텍스트와 의도에 따라 달라질 수 있어 구분해 사용해야 합니다!