Jest Globals Method - afterAll, afterEach, beforAll, beforEach
Jest afterAll (Ref, jest - afterAll)
모든 테스트 실행 후 1번 실행
사용 목적: 모든 테스트 실행 후 한 번만 실행 되어야 할 작업을 정의
예) 데이터베이스 연결 해제, 리소스 정리 등
Jest afterEach (Ref, jest - afterEach)
각 테스트 실행 후
사용 목적: 각 테스트 실행 후 정리 작업을 정의
예) 데이터 초기화, 리소스 해제 등 각 테스트 후 다음 테스트에 영향을 주지 않아야 하는 상태 초기화 작업
Jest beforAll (Ref, jest - beforAll)
모든 테스트 실행 전 1회 실행
사용 목적: 모든 테스트 실행 전 1번만 실행해야 할 작업 정의
예) 데이터베이스 연결, 전역 상태 설정
Jest beforEach (Ref, jest - beforEach)
각 테스트 실행 전
사용 목적: 각 테스트 실행 전 반복적으로 수행해야할 작업 정의
예) 데이터 초기화, mock 설정
실행 순서
1. `beforeAll`
2. `beforeEach` (각 테스트마다)
3. `테스트 코드`
4. `afterEach` (각 테스트마다)
5. `afterAll`
beforeAll(() => console.log('전역 - beforeAll'));
afterAll(() => console.log('전역 - afterAll'));
beforeEach(() => console.log('전역 - beforeEach'));
afterEach(() => console.log('전역 - afterEach'));
test('전역 테스트 1', () => {
console.log('전역 테스트 1 실행');
});
describe('describe 블록 1', () => {
beforeAll(() => console.log('describe 1 - beforeAll'));
afterAll(() => console.log('describe 1 - afterAll'));
beforeEach(() => console.log('describe 1 - beforeEach'));
afterEach(() => console.log('describe 1 - afterEach'));
test('describe 1 테스트 1', () => {
console.log('describe 1 테스트 1 실행');
});
test('describe 1 테스트 2', () => {
console.log('describe 1 테스트 2 실행');
});
});
test('전역 테스트 2', () => {
console.log('전역 테스트 2 실행');
});
출력 결과는 아래 더보기
1. 전역 `beforeAll` (한 번 실행)
2. 전역 `beforeEach` (각 테스트마다 실행)
3. 전역 테스트 (`test` 블록)
4. 전역 `afterEach` (각 테스트마다 실행)
5. 첫 번째 `describe` 블록의 `beforeAll` (한 번 실행)
6. 전역 `beforeEach`
7. 첫 번째 `describe` 블록의 `beforeEach`
8. 첫 번째 `describe` 블록의 첫 번째 테스트
9. 첫 번째 `describe` 블록의 `afterEach`
10. 전역 `afterEach`
11. 전역 `beforeEach`
12. 첫 번째 `describe` 블록의 `beforeEach`
13. 첫 번째 `describe` 블록의 두 번째 테스트
14. 첫 번째 `describe` 블록의 `afterEach`
15. 전역 `afterEach`
16. 첫 번째 `describe` 블록의 `afterAll`
17. 전역 `beforeEach`
18. 전역 테스트
19. 전역 `afterEach`
20. 전역 `afterAll`