자바스크립트 테스트 프레임워크 Jest
테스트 코드가 실행 전에 작업할 것이 있다면 beforeEach, beforeAll
을 사용할 수 있고
테스트 코드 실행 후에 작업할 것이 있다면 afterEach, afterAll
을 사용할 수 있다.
테스트가 수행되기 전에 무언가 동작 시키고 싶은 경우 beforeEach를 사용하면 된다.
beforeEach(() => {
// 테스트 코드 수행 전에 실행하고 싶은 코드 작성
});
테스트 이후 수행하고 싶은 것이 있다면 afterEach에 작성해주면 된다.
afterEach(() => {
// 테스트 코드 수행 후에 실행하고 싶은 코드 작성
});
beforeEach와 afterEach 외에도 beforeAll과 afterAll이 있다.
파일 시작과 끝 1회씩만 수행하고 싶다면 beforeAll과 afterAll을 사용해볼 수 있을 것이다.
테스트 코드가 여러개가 있는 경우 모든 테스트가 실행되기 전에 1회 실행된다.
beforeEach는 테스트 코드 마다 실행 전에 수행됐다면 beforeAll은 모든 테스트가 실행되기 전 최초 1회 실행된다고 볼 수 있다.
모든 테스트가 끝난 다음에 실행된다.
afterBefore는 테스트가 여러개 인 경우 하나의 테스트가 끝날 때마다 실행되지만 afterAll은 모든 테스트가 종료되고 마지막에 1회 수행된다.
실행 순서 :
beforeAll -> beforeEach -> afterEach -> afterAll로 동작한다.
describe 내부에 작성하여 스코프가 있는 경우 다음과 같은 순서로 동작된다.
beforeAll(() => console.log('1 - beforeAll'));
afterAll(() => console.log('1 - afterAll'));
beforeEach(() => console.log('1 - beforeEach'));
afterEach(() => console.log('1 - afterEach'));
test('', () => console.log('1 - test'));
describe('Scoped / Nested block', () => {
beforeAll(() => console.log('2 - beforeAll'));
afterAll(() => console.log('2 - afterAll'));
beforeEach(() => console.log('2 - beforeEach'));
afterEach(() => console.log('2 - afterEach'));
test('', () => console.log('2 - test'));
});
// 1 - beforeAll
// 1 - beforeEach
// 1 - test
// 1 - afterEach
// 2 - beforeAll
// 1 - beforeEach
// 2 - beforeEach
// 2 - test
// 2 - afterEach
// 1 - afterEach
// 2 - afterAll
// 1 - afterAll
여러 테스트를 수행할 때 반복적으로 작업해야 하는 것이 있다면 제스트에서도 hook을 걸어 사용할 수 있다.
참고 자료
Jest 공식문서