2012-05-15 43 views
1

由於沒有爲Cucumber 1.1+生成paths.env文件,例如,如果我經常爲我的測試步驟使用visit login_path,我應該爲它創建一個單獨的步驟,還是應該到處使用visit login_path?如果它改變了,我可以輕鬆地在features目錄下進行字符串替換。你把你的路徑放在Cucumber 1.1+ for Ruby on Rails上?

謝謝!

回答

0

如果它真的只是一個乾涸到visit login_path您的通話事情我只是離開他們是因爲他們都清楚,簡明因爲他們的立場,而你(可能)是不會需要更改登錄路徑助手。

但是,如果你開始看到像這樣稍微複雜的步驟,

# in features/step_definitions/profile_steps.rb 

When /^I go to my profile$/ do 
    visit user_path(@current_user) 
end 

考慮使用paths.rb型號:

# in features/step_definitions/common_steps.rb 

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

# in features/support/paths.rb 

module NavigationHelpers 
    def path_to(page_name) 
    when /my profile/ 
     user_path(@current_user) 
    ... 
    end 
end 
World(NavigationHelpers) 

這是正確的,我很喜歡paths.rbselectors.rb並將其複製到新項目:)我很高興看到「廚房水槽」web_steps.rb去。有關如何使用支持文件的示例:https://github.com/coshx/green-eggs/blob/master/features/support

+0

您如何知道將它放入名爲「NavigationHelpers」的模塊中?這是任意的嗎? –

+0

糟糕,該名稱是任意的,但您必須使用'World'方法包含模塊。我更新了答案以表明這一點。 –

+0

工作,謝謝!在有關World()的文檔中找到了這個很好的解釋https://github.com/cucumber/cucumber/wiki/A-Whole-New-World –

相關問題