이 글은 코딩앙마님은 Jest 강좌 #4 테스트 전후 작업을 바탕으로 제작되었습니다.
링크: https://www.youtube.com/watch?v=TRZ2XdmctSQ&list=PLZKTXPmaJk8L1xCg_1cRjL5huINlP2JKt&index=4
테스트 전, 후에 실행되는 함수를 작성할 수 있다.
예시) 테스트 전 DB에서 데이터를 가져오기, DB커넥션 끊기 등
테스트 함수를 실행하기 전에 단 한번 실행되는 함수이다.
예시로 BD 정보를 가져오는 비동기 함수로 작성하였다. (비동기가 아니여도 된다)
beforeAll(async () => {
user = await fn.connectUserDb();
});
테스트 함수를 모두 실행한 후에 단 한번 실행되는 함수이다.
afterAll(() => {
return fn.disconnectDb();
});
모든 테스트 함수를 시작하기 전에 매번 실행되는 함수이다.
beforeEach(() => {
...
});
모든 테스트 함수가 실행된 후에 매번 실행되는 함수이다.
afterEach(() => {
...
});
테스트를 디버깅 할 때 유용한 함수들이다.
오직 테스트 함수 하나만 실행하고 싶을 때 사용한다.
test.only("run only", () => {
// 이 테스트 함수만 실행됨
});
test("not run", () => {
// 실행 안됨
});
해당 테스트 함수를 스킵한다.
test.skip("skip", () => {
// 이 테스트 함수는 제외됨
});
test("run", () => {
// 실행됨
});
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", () => {
// ...
});
});