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へ行こう!」