jest사용법_Async대응

악음·2021년 12월 1일
0

jest

목록 보기
2/5
post-thumbnail

js에는 여러가지 비동기 객체들이 존재한디 이 비동기 객체들을 어떤식으로 테스트 해야하는지 알아보자

콜백함수

const callbackFunc = (id: string, cb: (id: object) => void) => {
  setTimeout(() => {
    console.log("wait 0.1 sec");
    const user = {
      id,
      name: `user${id}`,
      email: `${id}@test.com`,
    };
    cb(user);
  }, 100);
};
const callbackFuncTest = () => {
  test("fetch a user", (done) => {
    callbackFunc("1", (id) => {
      expect(id).toEqual({
        id: "1",
        name: "user1",
        email: "1@test.com",
      });
      // done을 콜백함수 맨 마지막에 호출하여야 jest가 콜백함수임을 알고
      // 기다린다음 테스트를 진행한다. 그렇지 테스트는 무조건 실패한다.
      done();
    });
  });
};

promise

간단히 await/async를 사용하자

const promiseFunc = (id: string) =>
  new Promise((resolve) => {
    setTimeout(() => {
      console.log("wait 0.1 sec");
      const user = {
        id,
      };
      resolve(user);
    }, 100);
  });

const promiseFuncTest = () => {
  // 프로미스는 async/await를 쓰면 자동으로 기다렸다가 테스팅을한다.
  test("프로미스 테스트", async () => {
    const data = await promiseFunc("id");
    expect(data).toEqual({
      id: "id",
    });
  });
};

다음은 모킹(모의 테스트)에 대해서 알아보자

profile
RN/react.js개발자이며 배운것들을 제가 보기위해서 정리하기 때문에 비속어 오타가 있을수있습니다.

0개의 댓글