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の開発環境
-

執筆者:

関連記事

Chef のtemplateでRails newのときデータベースをPostgreSQLに指定してgit initする〜railsrc

By: boring_vanner – CC BY 2.0 rails newをカスタマイズしてテスト環境とgit initを自動で準備する Chefのtemplateをつかって.rail …

RVMが大変そうなので寄付した

クリスマスだしね 🙂 rvm.io/ www.bountysource.com/fundraisers/489-rvm-2-0 $10以上で名前が乗るよ $15以上でステッカーもらえるよ

MacにHomebrewでPostgreSQL9.3をインストールしてgem pgをインストール

By: Gheysen86 – CC BY 2.0 OS X Mavericks 10.9.1

  [crayo …

no image

Git用サーバのgitoliteをインストール

環境 ubuntu server 12.04 参考 gitoliteによるgitサーバ構築、および、使用方法 目次1 インストール2 クライアントでssh鍵作成3 クライアントのpub鍵をサーバへ4 …

WindowsでCUIからGit,Virtualbox,Java,Rubyなど1700種類のソフトを一発でインストールできるパッケージマネージャ~Chocolatey NuGet

By: Anne-Lise Heinrichs – CC BY 2.0 chocolatey.org/ 目次1 インストール2 パッケージの確認・検索3 パッケージのインストール4 パッケ …