BDD(Behavior Driven Development, 행위 주도 개발)
BDD이란?
BDD(Behavior Driven Development)는 행위 주도 개발이다.
- BDD는 TDD를 근간으로 파생된 개발 방법이다.
- TDD(Test Driven Development)에서 한발 더 나아가 테스트 케이스 자체가 요구사양이 되도록 하는 개발 방법이다.
BDD 기본 패턴
BDD는 시나리오를 기반으로 테스트 케이스를 작성하며 함수 단위 테스트를 권장하지 않고, 시나리오는 개발자가 아닌 사람이 봐도 이해할 수 있는 정도의 레벨을 권장한다.
- Feature : 테스트에 대상의 기능/책임을 명시한다.
- Scenario : 테스트 목적에 대한 상황을 설명한다.
- Given : 시나리오 진행에 필요한 값을 설정한다.
- When : 시나리오를 진행하는데 필요한 조건을 명시한다.
- Then : 시나리오를 완료했을 때 보장해야 하는 결과를 명시한다.
작성 예시
@Test
fun `aliases for behavior driven development`() {
// given
given(calculatorService.add(20.0, 10.0)).willReturn(30.0)
// when
val result = calculatorService.add(20.0, 10.0)
// then
Assert.assertThat(30.0, CoreMatchers.`is`(result))
}
관련 동영상
카카오 if - “Kotest가 있다면 TDD 묻고 BDD로 가!”
최종 수정 : 2021-09-29