Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
1
Help us understand the problem. What is going on with this article?
@juuza

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

More than 3 years have passed since last update.

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
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
juuza

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
1
Help us understand the problem. What is going on with this article?