티스토리 뷰
AAA 패턴
AAA:Arrange-Act-Assert 패턴은 TDD:Test-Driven Development 에서 주로 사용되는 테스트 케이스 작성 방법론입니다. 이 패턴은 테스트를 구성하는 세 가지 주요 단계를 명확하게 구분하여 작성합니다.
- Arrange (준비): 테스트를 실행하기 전에 초기 상태를 설정합니다.
- 필요한 객체를 생성하거나 초기화하고, 테스트에 필요한 모든 사전 조건을 설정합니다.
- 예시 : 객체 인스턴스 생성, 입력 매개변수 설정, 초기화 작업 수행 등
- Act (실행) : 실제로 테스트하려는 동작이나 기능을 실행합니다.
- Arrange 단계에서 설정한 상태나 객체를 사용하여 특정 메서드를 호출하거나 동작을 수행합니다.
- 예시 : Method 호출, 이벤트 발생, 기능 실행 등
- 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);
}
}
요약
- 개발 초기 단계부터 작성된 테스트케이스를 통해 비지니스로직을 예측하고 검증하는데 매우 유용하다.
- 각 단계가 명확하게 구분되어 있어 테스트의 의도를 명확히 전달할 수 있고,
- 유지보수하는 데 용이합니다.
- 테스트케이스를 통해 어떤 단계에서 문제가 발생했는지 확인하기 쉽다.
'공부합시다' 카테고리의 다른 글
Bitwarden-cli 사용하기 (0) | 2024.08.22 |
---|---|
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 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- l5-swagger-response
- addMonthWithoutOverflow
- 정규식
- django
- eloquent-observer
- graphql-php
- 테스트_다중트랜잭션
- Python
- observer 매개변수 전달하기
- MySQL
- exception-test
- POP3
- session+token authorize
- redis
- 메일
- aaa패턴
- php
- laravel-test
- l5-swagger
- bitwarden-cli
- graphql
- 정의
- laravel-kafka
- php-laravel
- Laravel
- 라라벨
- vim
- password-manager
- addMonth
- 자바스크립트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
글 보관함