해결된 질문
작성
·
210
·
수정됨
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
안녕하세요! 우선 강의 들어주셔서 감사합니다.
남겨주신대로 내용은 코드를 최종본으로 이해하시고 강의를 진행해주시면 감사하겠습니다.
확인을 해봤더니 이전 편집 내용이 남아 있었던 것 같네요. 😅
결국 해당 내용은 초기화에 목적이 있기 때문에 모든 테스트가 진행된 뒤 호출하거나 진행 전 호출하는 방식으로 진행해주시면 상관 없을 것 같습니다.
감사합니다!
안녕하세요!
제가 제대로 이해했는지 정확하지는 않지만 우선 저희가 준비한 강의 의도는 코드 기준이 저희의 의도와 맞으며 afterEach와 beforeEach의 경우 호출되는 컨텍스트와 의도에 따라 달라질 수 있어 구분해 사용해야 합니다!
답변 감사합니다.
조금 헷갈려서 그런데요. '코드를 최종본으로 이해하면 되나, beforeEach든 afterEach든 크게 상관 없다.'라고 이해해도 될까요? :)