Jest 단위 테스트의 Arrange-Act-Assert 구조

단위 테스트는 입력 준비, 실행, 결과 검증을 분리해 함수·서비스의 계약을 작게 고정한다.

01

계약 선택

외부에 보장할 동작 하나를 테스트 이름으로 잡는다.

behavior
02

입력 준비

fixture와 mock은 실패 원인을 가리지 않을 만큼만 둔다.

arrange
03

대상 실행

Act는 한 동작만 실행해 검증 대상을 선명하게 만든다.

act
04

결과 검증

반환값, 예외, 의존성 호출을 명확한 matcher로 확인한다.

assert
Mock
비결정 요소만 대체시간, 랜덤, 외부 API처럼 테스트 밖 경계를 가린다.
mock boundary
비동기
Promise 종료까지 대기await expect 또는 resolves/rejects로 결과를 기다린다.
await
검증
행동과 핵심 필드를 직접 확인큰 스냅샷보다 깨진 계약을 바로 보여 준다.
specific assert

AAA 코드 예시

it("returns active users only", () => {
  const users = makeUsers();
  const result = filterActive(users);
  expect(result).toEqual([users[0]]);
});