티스토리 뷰

공부합시다

TDD AAA 패턴

IamMH 2024. 7. 4. 16:31

AAA 패턴

   AAA:Arrange-Act-Assert 패턴은 TDD:Test-Driven Development 에서 주로 사용되는 테스트 케이스 작성 방법론입니다. 이 패턴은 테스트를 구성하는 세 가지 주요 단계를 명확하게 구분하여 작성합니다.

 

  1. Arrange (준비): 테스트를 실행하기 전에 초기 상태를 설정합니다.
    • 필요한 객체를 생성하거나 초기화하고, 테스트에 필요한 모든 사전 조건을 설정합니다.
    • 예시 : 객체 인스턴스 생성, 입력 매개변수 설정, 초기화 작업 수행 등
  2. Act (실행) : 실제로 테스트하려는 동작이나 기능을 실행합니다.
    • Arrange 단계에서 설정한 상태나 객체를 사용하여 특정 메서드를 호출하거나 동작을 수행합니다.
    • 예시 : Method 호출, 이벤트 발생, 기능 실행 등
  3. Assert (단언) : 실행한 동작이 기대한 대로 동작하는지 검증합니다.
    • Act 단계에서 발생한 결과나 상태를 검사하여 예상한 값이 반환 되었는지 또는 특정 조건이 충족 되었는지 확인합니다.
    • 예시 : 반환된 값 검증, 객체 상태 검사, 예외 처리 여부 확인 등

예시

use Tests/TestCase

class ExampleTest extends TestCase
{
    /**
     * @test
     */
    public function 유닛테스트_예제_1_success(): void
    {
        //Arrange 쇼핑카트를 생성하고 상품 2개를 추가합니다.
        $cart = ShoppingCart::factory()->create();
        $cart->addItem('Product A', 25.0);
        $cart->addItem('Product B', 15.0);

        //Act calculate() 실행합니다.
        $totalPrice = $cart->calculate();

        //Assert 총 가격이 예상 값과 일치하는지 검증합니다.
        $this->assertEquals(40.0, $totalPrice);
    }
}

 

요약

  • 개발 초기 단계부터 작성된 테스트케이스를 통해 비지니스로직을 예측하고 검증하는데 매우 유용하다.
  • 각 단계가 명확하게 구분되어 있어 테스트의 의도를 명확히 전달할 수 있고,
  • 유지보수하는 데 용이합니다.
  • 테스트케이스를 통해 어떤 단계에서 문제가 발생했는지 확인하기 쉽다.

'공부합시다' 카테고리의 다른 글

Oracle 시퀀스(Sequence)와 Identity Column  (0) 2024.05.22
VIM 명령어  (0) 2023.07.07
git merged branch 삭제하기  (0) 2022.04.18
JS Array 중복 제거하는 방법 ES6  (0) 2021.08.05
마크다운 사용법  (0) 2021.05.26
댓글