코드/테스트 코드 작성 방법론

단위테스트(Unit test) AAA (arrange, act, assert) 패턴

미로처럼 2024. 3. 29. 08:37
728x90

사내 코드를 정리하다 보니 전파가 필요한 테스트 코드 작성방법을 공유하고자  이 글을 정리하고 쓴다.

 

 

AAA 패턴이란 준비(arrange), 실행(act), 검증(assert) 세단계로 Test를 작성하는 패턴을 의미

모든 테스트가 단순하고 균일한 구조를 갖는데 도움이 된다(유지 보수에 유리).

 

  • Arrange(준비)

Arrange 단계에서는 테스트 환경을 설정하는 일을 한다.

테스트에 필요한 객체, 변수 또는 데이터를 생성하고 준비
테스트 대상 객체를 초기화 하거나 설정
필요한 상태나 조건을 설정

 


  • Act(실행)

Act 단계에서는 테스트 대상 코드를 호출하거나 실행


  • Assert(검증)

  Assert에서는 Act로 실행한 코드의 결과를 검증하고 예상 동작 확인 


  • AAA 장점 
  • 가독성 향성 - 각 단계가 명확하게 구분되고, 다른 개발자들이 테스트 코드를 쉽게 이해하고 따라감.
  • 유지 보수성 향상 - 각 단계가 분리되어 변경 또는 확장이 필요 한 경우 해당 단계만 수정
  • 버그 식별 용이성 - Assert 단계에서 예상한 결과와 다른 경우, 문제를 더 쉽게 파악할 수 있다.
  • 자동화 용이 - AAA 패턴에 따르면 테스트 케이스를 자동화 하기 더 쉽다.

  • 유사 테스트 GWT (Given - When - Then)
  • Given - 준비(arrange)에 해당
  • When - 실행(act) 에 해당 
  • Then - 검증(assert)에 해당

JUNIT5를 통해 굉장히 심플하고 편하게 단위 테스트 가능

728x90