2013-11-27 55 views
0

我在練習Ruby on Rails Tutorial,我有一個關於rspec的問題。Rspec自動加載文件

在測試中應用程序/傭工/ application_helper.rb定義的方法full_title

module ApplicationHelper 
    def full_title(title) 
     base_title = "Ruby on Rails Tutorial Sample App" 
     if title.empty? 
      base_title 
     else 
      "#{base_title} | #{title}" 
     end 
    end # end of def 
end 

你不必include ApplicationHelper規格/助理/ application_helper_spec.rb。雖然在spec/requests/static_pages_spec.rb,你必須include ApplicationHelper,否則測試將失敗的undefined method full_title'`。

在我看來,rspec會自動加載文件app/helpers/application_helper.rb,你不必再包含它。這兩個測試例子有什麼不同?

回答

1

這與「自動加載」無關,這與rails環境中的不同之處在於。

RSpec使用Rails測試框架,您可以在類似ActionController::TestCase的類中找到該測試框架。

這些助手類設置了一大堆東西來提供Rails環境進行測試。

由於存在不同類型的環境,如單元,功能和集成,因此會出現不同的設置。這就是爲什麼你必須針對不同規格組合處理不同的東西。