我正在使用Rails 3.1.3與rspec-rails 2.8.1。我有一個範圍':locale' 在routes.rb中,我想運行控制器和路由 規格。我知道,在 application.rb中器設置default_url_options的問題,所以我申請在rspec的問題#255( https://github.com/rspec/rspec-rails/issues/255 )最後 評論找到了解決辦法控制器規範和default_url_options
#./spec/support/default_locale.rb
class ActionView::TestCase::TestController
def default_url_options(options={})
{ :locale => I18n.default_locale }
end
end
class ActionDispatch::Routing::RouteSet
def default_url_options(options={})
{ :locale => I18n.default_locale }
end
end
#./spec/controllers/categories_controller_spec.rb
require "spec_helper"
describe CategoriesController do
describe "GET index" do
it "assigns all categories as @categories" do
category = Factory :category
get :index
assigns(:categories).to_a.should eq([category])
end
end
end
此測試失敗,路由錯誤但如果我使用「get:index, locale :: fr」而不是「get:index」測試通過。 該測試是控制器規格的一個示例,但我沒有通過 路由和請求進行測試。 (我沒有查看規格,但 我敢肯定,他們也會失敗)
我不知道問題來自哪裏以及爲什麼補丁 不解決它。還有其他的事情要做嗎? (我只是把代碼 放在./spec/support/default_locale.rb中,並驗證它是否正確加載 )。
在此先感謝。