RubyOnRailsの開発環境

Cucumberのfeatureファイルのプラクティス

投稿日:

Cucumberのfeatureファイルのプラクティスについて、実際よくわかってなかったので色々調べてみた

cukes.info/

github.com/cucumber/cucumber

github.com/cucumber/cucumber-rails

一番参考になったのが結局この本

 

cucumberのファイル構成

  • featureファイル
  • step_definitions
  • env.rb

featureファイルに書くキーワード

 

フィーチャファイルの実例

だいたい見ればわかるようになってる

github.com/cucumber/cucumber/blob/master/examples/i18n/ja/features/addition.feature

github.com/cucumber/cucumber/blob/master/examples/i18n/ja/features/division.feature

 

フィーチャ(機能)に書くこと

フィーチャはタイトルとナラティブで構成される

たぶん機能的にはコメントのようになにを書いてもエラーとかになることはない

以下はおそらくビジネス?やソフトウェア開発計画?的に意味がある

タイトル

フィーチャ(機能)の名前.

ユーザーがシステムに要求しているであろうアクティビティを簡潔に書く(243ページ)

ナラティブ

機能の説明.

英語は得意でないので、ナラティブを辞書でググってみる

ナラティブ 【narrative】

物語。朗読による物語文学。叙述すること。話術。語り口。→ナレーター

kotobank.jp/word/%E3%83%8A%E3%83%A9%E3%83%86%E3%82%A3%E3%83%96

フィーチャのナラティブはConnextraフォーマットで書く(244ページ)のがおすすめ

らせん型ワークフロー:CONNEXTRAフォーマットの考え方について

 

シナリオに書くこと

シナリオは、ソフトウェアがどのような振る舞いをすべきかに関する具体例

最も一般的なシナリオ=「ハッピーパス」を説明するシナリオからはじめて、その後、特異なケースを説明するシナリオを追加していく

(248ページ)

 

ステップの種類

シナリオは任意の数のステップで構成される.

ステップの種類は、Given、When、Then、And、Butの5種類

Givenはシナリオにおいて事実として受け入れるものを示す

Whenはシナリオにおけるイベントを示す

Thenは期待される結果を示す

AndとButはその直近にあるGiven、When、Thenと同じ意味

(251ページ)

 

昔つくったしょぼいfeatureジェネレータ

github.com/seventhsense/featuregenerator

 

宣言型シナリオと命令型シナリオ

たぶん、こんなのが宣言型

たぶん、こんなのが命令型

 

宣言型なら、フィーチャファイルがすっきり読みやすくなるけど、ステップ定義をたくさん書く必要がある

命令型なら、ステップ定義の使いまわしができるけど、フィーチャファイルが冗長になる

適度にバランスを保つのがベストというのが多数の意見

 

シナリオアウトライン

Cucumberによるストーリー駆動開発の手法

上の実例でもつかってるやつ

値をテーブルで与えて同じようなシナリオをまとめて書くやり方

-RubyOnRailsの開発環境
-

執筆者:

関連記事

rails gに-pオプションがあったので色々試してみた

  By: Shardayyy – CC BY 2.0 -p[–pretend]なんてオプションあったんですね このオプションをつけると色々表示されるけど、実際には何 …

rails newをカスタマイズしてテスト環境とgit initを自動で準備する

  rails new -helpでrails newの初期オプションが見られる ユーザルートに.railsrcというファイルにオプションを書き込んでおける rails new -m オプシ …

Rails3.2+Apache2+Passenger環境でSSLを使ってみる

  前提 Rails3.2のアプリをデプロイ~apache+passenger+postgresql *ローカルでproduction環境を構築してみるという話です.いわゆるオレオレ証明書を …

Ubuntu12.04.1のbashカスタマイズメモ

  目次1 プロンプトのカスタマイズ2 cdのカスタマイズ3  過去のコマンドの一部を引用する プロンプトのカスタマイズ ubuntuのデフォルトの.bashrcの42行目あたりからをコメン …

no image

Rails3.2.8とRSpecとCapybaraでテスト

  目次1 Gemfile2 RSpecインストール3 Capybaraの設定4 ひな形準備5 最初のテスト6 capybaraのテスト Gemfile [crayon-5b50965c67 …