2011-06-20 94 views
1

我試圖學習BDD的發展方式,只是看到了黃瓜的RailsCasts課程。在那裏,我見過的方法來描述像一些動作: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 

它會在下次automaticaly時識別這條路徑。而「我應該看到」具有相同的功能。

所以,問題:是否有螞蟻的方式來替換那些「我去」和「我應該看到」與另一種語言或自定義序列的結構?例如:

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 

希望這有助於。