2013-10-22 78 views
1

我有一個Sinatra應用程序。rspec-sinatra,如何調用輔助方法?

它包括以下內容:

helpers do 
    def helper1 
    ...code... 
    end 
    def helper2 
    ...code... 
    end 
    ... 
end 

如何測試這些輔助方法?

目前我rspec的有:

ENV['RACK_ENV'] = 'test' 

require_relative '../app' # <-- your sinatra app 

describe 'Basic test' do 

    before :each do 
    @xml_info = File.read('examples/request_litle_auth.xml') 
    end 
    it "basic test" do 
    'a'.should eq 'a' 
    end 
    it "can call a helper method" do 
    to_dollars(30) 
    end 
end 

但給:

undefined method `to_dollars' for #<RSpec::Core::ExampleGroup::Nested_1:0x00000002460e18> 

回答

1

古典西納特拉測試工作與Rack::Test。這是一個假的瀏覽器會話,執行對你的sinatra應用程序的請求,以便你可以斷言響應代碼,內容等。

如果你想測試一個自定義的幫助器方法,你需要類似這樣的:https://github.com/padrino/padrino-framework/issues/930

TL; DR

創建一個模塊,它包含在你的助手呼籲,測試在你喜歡的任何方式的模塊。