Jest는 테스트를 구성하고 정리하기 위해 다음과 같은 메서드를 제공합니다:
메서드 | 설명 |
---|---|
describe |
테스트 그룹을 정의. 테스트를 논리적으로 묶을 수 있음. 중첩(Nested) 가능. |
test 또는 it |
개별 테스트 케이스를 정의. 실제 테스트가 실행되는 부분. |
beforeAll |
그룹의 모든 테스트 전에 한 번 실행. 비동기 작업 지원. |
afterAll |
그룹의 모든 테스트 후에 한 번 실행. 비동기 작업 지원. |
beforeEach |
각 테스트 실행 전에 실행. 테스트 간 독립성을 유지하는 데 유용. |
afterEach |
각 테스트 실행 후에 실행. 테스트 리소스 정리에 유용. |
describe
블록은 중첩이 가능하여, 테스트를 계층적으로 구성할 수 있습니다.
예시:
describe('User Service', () => {
beforeAll(() => {
console.log('Setup before all tests');
});
beforeEach(() => {
console.log('Setup before each test');
});
afterEach(() => {
console.log('Cleanup after each test');
});
afterAll(() => {
console.log('Cleanup after all tests');
});
describe('Create User', () => {
it('should create a user successfully', () => {
const result = true; // 실제 로직 호출
expect(result).toBe(true);
});
it('should throw an error for invalid input', () => {
const invalidInput = null;
expect(() => {
// invalid input 처리 로직
if (!invalidInput) throw new Error('Invalid input');
}).toThrow('Invalid input');
});
});
describe('Delete User', () => {
it('should delete a user successfully', () => {
const userExists = true;
expect(userExists).toBe(true); // 유저 존재 확인
const result = false; // 삭제 후 상태
expect(result).toBe(false);
});
});
});
출력 순서:
beforeAll
실행describe
블록의 beforeEach
와 afterEach
실행it
, test
테스트 실행afterAll
실행expect
expect
는 테스트 결과를 검증하기 위해 사용됩니다. Jest는 다양한 Matcher를 제공합니다.
Matcher | 설명 |
---|---|
toBe(value) |
값이 동일한지 확인 (=== ). |
toEqual(object) |
객체 또는 배열의 깊은 비교. |
toBeTruthy() |
값이 참인지 확인. |
toBeFalsy() |
값이 거짓인지 확인. |
toContain(item) |
배열이나 문자열에 특정 항목이 포함되어 있는지 확인. |
toThrow(error) |
함수가 특정 오류를 던지는지 확인. |
toHaveLength(number) |
배열 또는 문자열의 길이를 확인. |
Common Matchers