cucumber チュートリアル
キュウリを始める
サーチ…
備考
キュウリについて
キュウリはソフトウェアの実行可能な仕様を実行するツールです。 「フィーチャー」と呼ばれる仕様は、構造化された自然言語で書かれています。 Cucumberは、各ステップをCucumberの実装でサポートされているプログラミング言語で書かれた「ステップ定義」にマッピングすることで、機能を実行します。キュウリは、Ruby(オリジナル)、Java、Javascriptなどの多くのプログラミング言語で実装されています 。また、多くの人間の言語に翻訳されています。
Cucumberは、Behavior-Driven Development(BDD)と呼ばれるアジャイル手法をサポートするために作成されました。 BDDでは、単体テストなどのプログラマの観点からではなく、ユーザーの視点からソフトウェアの機能を記述する受け入れテストを作成することによって、外部開発を開始します。キュウリの特徴は、これらの受け入れ試験として役立つ。
一般に、キュウリの機能は人間が判読可能なドキュメントであり、実行可能なテストスイートでもあり、ドキュメントとテストは常に合意しています。キュウリは、プログラマー以外の利害関係者と文書やテストについて連絡するのに便利です。また、プログラマーは、プログラミング言語の無関係な概念レベルでテストを書くことができます。
Cucumberは、SeleniumやPhantomJSなどのブラウザドライバを使用して、Webアプリケーションを指定およびテストするために最もよく使用されます。ただし、実行可能なソフトウェアや、キュウリの実装でサポートされているプログラミング言語から状態や結果を判断することができます。
その他のドキュメント
公式文書はhttps://cucumber.io/docsにあります 。 Cucumberの実装を記述するキュウリの機能から生成されたドキュメントは
- JavaScript: https : //relishapp.com/cucumber/cucumber-js/docs
- Ruby: https : //relishapp.com/cucumber/cucumber/docs
https://relishapp.com/exploreにはキュウリの関連ツールやサンプルが含まれていますが、残念ながら、キュウリJVMはありません。
このトピック
このトピックでは、読者にキュウリの概念を紹介するいくつかの例を示します。その他のセクションでは、インストール、コマンドラインとIDEの使い方、機能、ステップ定義などの完全な例を示します。
キュウリの特徴
CucumberはGherkin構文を使用して、構造化された自然言語でのソフトウェアの動作を記述します。
そのようなキュウリは、ユースケースのシナリオのような他のものと非常に異なるテストフレームワーク(一般的な誤解)が、 システムのマニュアルの枠組み 、ではないではないので。一般的な誤解は、実際のシステムの動作を反映するために、キュウリの文書化を自動化することができるという事実によるものです。
キュウリのドキュメントスイートはで構成されているFeaturesガーキンで書かれており、独自のファイルでホストされて、それぞれが自分のソフトウェアの特徴を記述する。これらのファイルをディレクトリ構造に整理すると、フィーチャをグループ化して編成できます。
- 銀行/
- 撤退。特徴
- atm.feature
- 個人ローン。フィーチャ
- トレーディング/
- portfolio.feature
- intraday.feature
- 抵当/
- 評価。機能
- accounting.feature
各Featureは、オプションの構造化されていない純粋に情報の入門セクションと、それぞれが使用条件またはユースケースを表す1つまたは複数のScenariosで構成されるプレーンテキストファイルです。
例:
Feature: Documentation
As a StackOverflow user or visitor
I want to access the documentation section
Scenario: search documentation on Stack Overflow
Given I am on StackOverflow
And I go to the Documentation section
When I search for "cucumber"
And I follow the link to "cucumber"
Then I should see documentation for "cucumber"
Given 、 When 、 And 、 But 、 Thenの各行はStepと呼ばれます。どのステップも順序にかかわらずそれらの単語のいずれかで始めることができますが、可能な限り最も自然な方法でそれらを使用するのが一般的です。
フィーチャは、 Tags 、それをさらに分類するためのFeatureまたはScenarioに置くことができる注釈によって編成することもできます。
フィーチャの実行可能性は、さまざまな言語(Java、Ruby、Scala、C / C ++)で記述できるグルーコードを介して実現されます。各Stepはグルーコードと照合され、 Step Definitions (一般にStepDefと略されます )正規表現。
各Stepは、関連するStep Definition 1つしかありません。
Featureが実行されると、 Scenario構成するそれぞれが実行されます。つまり、各Scenario Step一致する各StepDefが実行されます。
純粋なRubyのインストール
Rubyで使用するためにCucumberをインストールするには、次のコマンドを使用します。
gem install cucumber
代わりに、もしあなたがbundlerを使っているなら、Gemfileに次の行を追加することができます
gem 'cucumber'
そしてバンドルラーを走らせる
bundle install
[私はこれが独自のトピックであると思う、インストール。私はそのトピックを作成し、この例をそこにコピーしました。そのトピックが承認されたら、私はそこに移動してコピーを削除します。]
Rubyにおけるキュウリのステップ定義
features / step_definitions / documentation.rbで:
When /^I go to the "([^"]+)" documentation$/ do |section|
path_part =
case section
when "Documentation"
"documentation"
else
raise "Unknown documentation section: #{section}"
end
visit "/documentation/#{path_part}/topics"
end
Then /^I should see the "([^"]+) documentation"$/ do |section|
expect(page).to have_css('h2.doctag_title a', text: section)
end
これらの手順は、Webアプリケーションを実行します。彼らはまだ実用的である限り、できるだけ簡単です。
各ステップはGherkinキーワードで始まります.Gherkinキーワードは、ステップ定義ファイルでCucumberにステップを登録するメソッドです。ステップ定義メソッドは、シナリオ内の行と一致する正規表現と、シナリオが一致する行に到達するときに実行されるブロックを取ります。正規表現内のキャプチャ・グループは、ブロック・パラメータとしてブロックに渡されます。
Whenステップには、人が読める参照からページ(「ドキュメント」)への簡単なインラインの例があります。リアルキュウリスイートは通常、このロジックを別の方法で使用します。 visit方法はCapybaraによって提供されています。カピバラは非常に一般的に使用されていますが、キュウリを使用する必要はありません。 visitは、指定されたURLにアクセスするためにCapybaraが管理するブラウザに指示します。
Thenステップは、ページの内容をどのようにテストできるかを示します。 expect / to RSpecを(再び、キュウリでは必要ありませんが、非常に一般的にそれを使用)により提供されます。 have_cssはCapybaraによって提供されています。指定されたCSSセレクタが、指定されたテキストを含むページの要素と一致することが期待されます。ブラウザの要求が失敗した場合、この期待は失敗することに注意してください。
その他の例については、「ステップ定義」のトピックを参照してください。