Jest 기본 3 (테스트 그룹 및 전후 작업)

heisje·2023년 8월 3일
0
post-thumbnail

이 글은 코딩앙마님은 Jest 강좌 #4 테스트 전후 작업을 바탕으로 제작되었습니다.
링크: https://www.youtube.com/watch?v=TRZ2XdmctSQ&list=PLZKTXPmaJk8L1xCg_1cRjL5huINlP2JKt&index=4


테스트 전 후 작업

테스트 전, 후에 실행되는 함수를 작성할 수 있다.
예시) 테스트 전 DB에서 데이터를 가져오기, DB커넥션 끊기 등

beforeAll

테스트 함수를 실행하기 단 한번 실행되는 함수이다.
예시로 BD 정보를 가져오는 비동기 함수로 작성하였다. (비동기가 아니여도 된다)

beforeAll(async () => {
    user = await fn.connectUserDb();
});

afterAll

테스트 함수를 모두 실행한 단 한번 실행되는 함수이다.

afterAll(() => {
    return fn.disconnectDb();
});

beforeEach

모든 테스트 함수를 시작하기 전에 매번 실행되는 함수이다.

beforeEach(() => {
  ...
});

afterEach

모든 테스트 함수가 실행된 후에 매번 실행되는 함수이다.

afterEach(() => {
  ...
});

테스트 디버깅

테스트를 디버깅 할 때 유용한 함수들이다.

only

오직 테스트 함수 하나만 실행하고 싶을 때 사용한다.

test.only("run only", () => {
  // 이 테스트 함수만 실행됨
});

test("not run", () => {
  // 실행 안됨
});

skip

해당 테스트 함수를 스킵한다.

test.skip("skip", () => {
  // 이 테스트 함수는 제외됨
});

test("run", () => {
  // 실행됨
});

테스트 그룹화

describe

describe를 사용하여 테스트를 그룹화하여 계층있는 테스트 구조를 작성할 수 있다.
beforeAll, afterAll는 그룹의 테스트가 시작되기 전, 후에 단 한번 실행된다.
beforeEach, afterEach는 그룹안의 테스트가 시작되기 전,후에 매번 실행된다.

beforeAll(async () => {
    data = await fn.connectDataDb();
});

afterAll(() => {
  return fn.disconnectDataDb();
});

describe("User group", () => {
  beforeAll(async () => {
    user = await fn.connectUserDb();
  });

  afterAll(() => {
    return fn.disconnectUserDb();
  });

  test("test 1-1", () => {
    // ...
  });

  test("test 1-2", () => {
    // ...
  });
});

describe("group 2", () => {
  it("test 2-1", () => {
    // ...
  });

  it("test 2-2", () => {
    // ...
  });
});

Reference

[JEST] 📚 테스트에 유용한 함수 - only() / skip() / describe() / it()

profile
김희제의 기술블로그

0개의 댓글