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

執筆者:

関連記事

no image

Ruby2.0.0とRails4をためしてみた

本当なら、われわれ素人は枯れ尽くしてから手を出したほうがいいんですが、WEB+DB PRESS Vol.73の記事を読んでたら試したくなったのでOSX Lionで試してみた 気になったのは、「体感速度 …

no image

rails g rspec:scaffoldで生成されるファイル

ほぼ個人的なコピペ用 RubyとRailsのテスト関係のリンクメモ 目次1 使い方とオプション2 サンプル 使い方とオプション

サンプ …

no image

Rails3.2.8とRSpecとCapybaraでテスト

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

RubyGemのことを調べる~RubyGems Guide for Japanese

    guides.rubygems.org/ すでに日本語化をはじめている人がいた. github.com/bisque33/RubyGems-Guides-for-Japan

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

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