【发布时间】:2014-09-22 06:26:01
【问题描述】:
我正在使用带有 rspec-rails 2.8.1 的 Rails 3.1.3。我有一个范围':locale' 在 routes.rb 中,我想运行控制器和路由 眼镜。我知道设置 default_url_options 的问题 application.rb 控制器,所以我应用了最后找到的解决方案 评论 rspec 问题 #255 ( https://github.com/rspec/rspec-rails/issues/255 )
#./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 并验证它是否加载 正确)。
提前致谢。
【问题讨论】:
标签: ruby-on-rails