2011-06-20 14 views
1

私は開発用のBDDの方法を学び、キュウリのRailsCastレッスンを見ました。そこで私は次のようにいくつかのアクションを記述するためのアプローチを見てきました:Ruby on Rails:paths.rbのキュウリのカスタム定義

When I go to the list of articles 
Then I should see "Pizza" 

そして、私はすべてのものは「私が行く」理解しや構造がどこかにハードコード「私が見るべきです」。だからpaths.rbで私は書くことができます:

def path_to(page_name) 
case page_name 

when /the list of articles/ 
    articles_path 

そして、このパスは次回は自動的に認識されます。そして、 "私は"同じ機能を持っている必要があります。

質問:別の言語やカスタムシーケンスを使用して「私は行く」と「見るべきである」構成を置き換えるための蟻の方法がありますか?たとえば:

When I constantly visiting the list of articles 
Then I have to observe text "Pizza" 

答えて

2

確かに、

キュウリは、マッピングへの呼び出しを行うためにweb_steps.rbの手順を使用しています。

When /^(?:|I)go to (.+)$/ do |page_name| 
    visit path_to(page_name) 
end 

Then /^(?:|I)should see "([^"]*)"(?: within "([^"]*)")?$/ do |text, selector| 
    with_scope(selector) do 
    if page.respond_to? :should 
     page.should have_content(text) 
    else 
     assert page.has_content?(text) 
    end 
    end 
end 

だから、私は標準web_stepsにリダイレクトし、次のステップ...このことができます

#step_definitions/my_steps.rb 

When /^(?:|I)constantly visiting (.+)$/ do |page_name| 
    When %{I go to #{page_name}} 
end 

Then /^(?:|I)have to observe text "([^"]*)" do |text| 
    Then %{I should see "#{text}"} 
end 

希望を記述します。それは次のようになります。

関連する問題