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

執筆者:

関連記事

assets:compileし直すときassets:cleanしておくとgitが自動でrenameしてくれて便利

By: Niran V V   アセットパイプラインはプロダクション環境にデプロイするときにJavaScriptやCSSをCoffeeScriptやSASS/SCSSからそれぞれ1つのファイ …

vimでRailsのプロジェクトファイル間を移動〜rails

  By: rjp – CC BY 2.0 目次1 vim-rails2 unite-rails3 Unite.vimがプロジェクト単位での検索に対応した vim-rails g …

Gemfileのgroup :assets ってどういうことなのか

By: Horia Varlan – CC BY 2.0   group :development, :testってことだったんですね〜 How is the :assets g …

Chef SoloでUbuntu Server12.04にVim7.4をコンパイルして自分の環境をインストール

By: Derek Gavey – CC BY 2.0 目次1 情報2 Workstation(操作する側)にchefとknife-soloをインストールする3 Chefリポジトリをつくる …

Rails4でのJavaScriptのユニットテスト~jasminerice&guard-jasmine

By: sk_vel – CC BY 2.0 Rails3.2でJasmineをつかってCoffeeScriptをテスト~jasminerice 目次1 環境2 Gemfile3 gene …