LoginSignup
1
1

More than 5 years have passed since last update.

BDDにおいてどういう風にテストをかけばBehaviour(外部機能仕様)を書いたことになるのか。

Posted at

BDDにおいてどういう風にテストをかけばBehaviour(外部機能仕様)を書いたことになるのか。

背景

BDDの"Behaviour(振る舞い)"を記述する、というのが意味わからなかったので
どういうふうにかけば振る舞いを記述したことになるのか、自分なりに調べてみました。
間違ってたら、ご指摘ください。

答え:

Given X When Y Then Z
(XであるときYするとZになる。)
という表現にする。

なぜそれが、ふるまい(外部仕様機能)を記載することになるのか

  • アプリケーションの全体像は有限オートマトンとして記述できる。
  • 有限オートマトンは状態遷移の組み合わせで記載される。
  • したがって、状態遷移をすべて記載すればアプリケーションの仕様は記載されることになる。
  • 状態遷移を言語化すると「XであるときにYすればZになる」という形で表現できる。

例:

各項目が複数ある場合(and)

Given X1
and X2
When Y1
and Y2
Then Z1
and Z2

X1かつX2であるときに
Y1かつY2すると
Z1かつZ2になる。

各項目が複数ある場合(or)

Given X1
or X2
When Y1
or Y2
Then Z1
or Z2

X1またはX2であるときに
Y1またはY2すると
Z1またはZ2になる。

各項目が複数ある場合(and orがいりまじり)

Given X1
or X2
When Y1
and Y2
Then Z1
or Z2

X1またはX2であるときに
Y1かつY2すると
Z1またはZ2になる。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1