2012-09-21 71 views
2

我已經發布了我的第一個軌道寶石,但還沒有包含任何測試。這個寶石只是一個簡單的幫手,我想用rspec進行測試。但我不知道如何用rspec測試一個幫助器。如何用rspec測試gem內的助手?

我試圖創建一個文件規範/幫手/ development_ribbon_helper_spec.rb:

require 'spec_helper' 
describe DevelopmentRibbonHelper do 
end 

但是,當我執行rspec的我得到這個錯誤:

development_ribbon_helper_spec.rb:3:in `<top (required)>': uninitialized constant DevelopmentRibbonHelper (NameError) 

您可以找到整個源代碼github

回答

2

它看起來像你可能會試圖寫一個引擎引擎的寶石,對嗎?由於您的幫助程序文件位於lib /之外,因此您的spec_helper需要知道如何加載您的rails引擎。

這樣做的一種方法是在spec /目錄中創建一個虛擬滑軌應用程序。這個設置在這篇文章中有詳細描述:http://reinteractive.net/posts/2-start-your-engines

或者,你可以在你development_ribbon.rb文件移到輔助文件到LIB/development_ribbon並要求其:

require "development_ribbon/development_ribbon_helper" 

然後,在使用寶石你的Rails應用程序,你可能包括助手application_helper.rb

module ApplicationHelper 
    include DevelopmentRibbon::DevelopmentRibbonHelper 
end