2011-12-08 49 views
3

我需要創建一些可用於我的應用程序(模型,視圖和控制器)和RSpec的方法。我應該在哪裏存儲方法以使其可用於我的應用程序和RSpec?

具體而言,我需要創建一些包含關鍵邏輯的path_helper方法。我需要讓他們提供給RSpec的,這樣我可以運行像測試:

controller.should redirect_to my_custom_path_helper(@object) 

我推測,他們應該去的地方在/lib但我不知道如何構建這個(混入模塊 - 如果是的話又該我將模塊混合成?)。

另一種選擇是如果我可以從RSpec訪問應用程序助手。

編輯:請注意

這不是一個關於測試的輔助方法它的目的是使他們的應用程序和RSpec都可以訪問的問題。

我需要因爲我需要在我的軌道path_helpers包裝邏輯做到這一點,當我在RSpec的測試should redirect_to .._path我不想重複那些路徑傭工的邏輯。

回答

12

您可以RSpec的包括由模塊(規格/ spec_helper.rb):

RSpec.configure do |config| 
    config.include YourModule 
end 

如果您想使用的路由路徑的助手,您可以將其像這樣:

RSpec.configure do |config| 
    config.include Rails.application.routes.url_helpers 
end 
1

RSpec的護欄寶石似乎支持helper testing

寶石可以使您的任何規格的可用助手:「書寫規格爲你的助手是一個單元只需要告訴例子組的名稱。幫助程序和示例組將公開包含幫助程序的對象「。

+0

嗨再次m_x。我不想找助手測試。我正在尋找可以幫助你的幫助者 –

+0

gem可以使[你的任何規格的幫助者都可以使用](http://rspec.info/rails/writing/):「爲你的幫手編寫規範很簡單,只需告訴示例組的名稱爲 幫助程序,並且示例組將顯示__包含helper__的對象。在我嘗試幫助你的所有時間之後,我對這個-1有點難過。 –

+0

你完全正確 - 我這樣做是因爲儘管你的後續評論解釋了你的推理,第一個評論與測試幫助者有關。無論哪種方式,我道歉,你的幫助是非常寶貴的,對我來說是不禮貌的。如果您可以編輯它以包含您的後續評論,我可以更改downvote。謝謝。 –

相關問題