LoginSignup
8
7

More than 5 years have passed since last update.

振舞駆動、cucumberで描くBDD受け入れテスト

Last updated at Posted at 2012-12-26

この記事は最終更新から1年以上経過しています。 気をつけてね。

cucumberは受け入れテストにいい。
開発者が書くのはまったくもってよろしくないが、承認側としては読めないプロダクション用のコードをレビューするより実用的だ。

受け入れ側の書くシナリオ

冗談のようだが日本語でいい。
ssl_check.featureというファイルには正にこのように書いてある。

ssl_check.feature
# language: ja
機能: 証明書期限のテスト
  証明書の更新漏れを確かめるために
  利用者の立場から
  期限を確かめたい

シナリオ: 証明書期限について
  前提 my.z-cloud.jp にアクセスして
  もし 証明書の情報がとれた
  ならば 期限が 360 日より長いか確認する

シナリオ: 証明書期限について
  前提 my.z-cloud.jp にアクセスして
  もし 証明書の情報がとれた
  ならば 期限が 30 日より長いか確認する

受け入れテストを実施する

先ほどのシナリオを実行する。

$ cucumber 
# language: ja
機能: 証明書期限のテスト
  証明書の更新漏れを確かめるために
  利用者の立場から
  期限を確かめたい

  シナリオ: 証明書期限について           # features/ssl_check.feature:7
    前提my.z-cloud.jp にアクセスして # features/step_definitons/steps.rb:2
    もし証明書の情報がとれた            # features/step_definitons/steps.rb:17
    ならば期限が 360 日より長いか確認する   # features/step_definitons/steps.rb:21
      証明書の残り期限は 34日 のようです (RuntimeError)
      ./features/step_definitons/steps.rb:23:in `/^期限が (\d+) 日より長いか確認する$/'
      features/ssl_check.feature:10:in `ならば期限が 360 日より長いか確認する'

  シナリオ: 証明書期限について           # features/ssl_check.feature:12
    前提my.z-cloud.jp にアクセスして # features/step_definitons/steps.rb:2
    もし証明書の情報がとれた            # features/step_definitons/steps.rb:17
    ならば期限が 30 日より長いか確認する    # features/step_definitons/steps.rb:21
      証明書の残り期限は 34日 あります

Failing Scenarios:
cucumber features/ssl_check.feature:7 # Scenario: 証明書期限について

2 scenarios (1 failed, 1 passed)
6 steps (1 failed, 5 passed)
0m0.206s

想定したシナリオ通りになっていないものをFailさせる。

8
7
3

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
8
7