小编gfd*_*gfd的帖子

为某些 rspec 请求设置默认参数

语境:

我们的一些 Rails 路由需要区域设置来生成 url(例如domain.com/en/courses),而基本控制器(例如domain.com)不使用区域设置。default_url_options我们通过在右侧控制器中添加区域设置来设置它。

问题:

但是在 Rspec 中测试它时,我收到一个missing required keys错误,询问区域设置。当我在规范中添加区域设置参数时,visit course_path(@course, locale: :en)一切都恢复正常......但我们有很多规范!

第一次尝试:

我尝试使用default_url_option中的方法ActionView::TestCase::TestController,就像ActionDispatch::Routing::RouteSet这样

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
Run Code Online (Sandbox Code Playgroud)

但它设置了整个应用程序的区域设置,而不仅仅是一些特定的路线......

问题:

有没有办法在 rspec 支持中为某些路由设置默认参数?

ruby rspec ruby-on-rails rspec-rails

5
推荐指数
1
解决办法
411
查看次数

标签 统计

rspec ×1

rspec-rails ×1

ruby ×1

ruby-on-rails ×1