728x90
반응형
행동 주도 개발 (Behavior-Driven Development, BDD)이란?
- BDD는 애자일 개발 방법론의 하나로, 개발자, 테스터, 비기술 담당자들이 협력해서 사용자 중심의 소프트웨어를 만들기 위한 방법
- BDD에서는 사용자의 행동을 중심으로 요구사항을 정의하고, 이해하기 쉬운 자연어 형식(예: Gherkin 문법 - Given, When, Then)으로 시나리오를 작성
예시: 은행 계좌 인출 기능
Feature: 은행 계좌 인출
Scenario: 계좌에 충분한 잔액이 있을 때 인출 성공
Given 계좌 잔액이 100,000원이다
When 30,000원을 인출하면
Then 인출이 성공해야 한다
And 계좌 잔액은 70,000원이 되어야 한다
Scenario: 계좌에 잔액이 부족할 때 인출 실패
Given 계좌 잔액이 20,000원이다
When 50,000원을 인출하면
Then 인출이 실패해야 한다
And 계좌 잔액은 변하지 않아야 한다
- Feature: 기능 또는 요구사항의 큰 단위
- Scenario: 특정 상황에서의 행동 시나리오
- Given: 시나리오의 초기 상태(조건)
- When: 행동(이벤트)
- Then: 기대 결과
- And: 추가 조건이나 결과
JUnit + AssertJ 스타일 BDD 예시
import static org.assertj.core.api.Assertions.assertThat;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
public class CalculatorTest {
@Test
@DisplayName("더하기 기능이 올바르게 작동해야 한다")
void addition_should_work_correctly() {
// Given (상황)
Calculator calculator = new Calculator();
// When (행동)
int result = calculator.add(2, 3);
// Then (결과 검증)
assertThat(result).isEqualTo(5);
}
}728x90
반응형
'Test' 카테고리의 다른 글
| [Test] E2E 테스트란? (0) | 2025.07.13 |
|---|---|
| [Front Test] 스냅샷 테스트 (0) | 2025.07.13 |
| [Front Test] div를 남발하면 안되는 이유 (접근성) (0) | 2025.07.13 |
| [front test] 사용자처럼 테스트하자 (1) | 2025.07.13 |
| [front-test] 프론트엔드 테스트 (0) | 2025.07.13 |