确定Rails中的资源路由

时间:2013-09-05 15:59:55

标签: ruby-on-rails rspec

我希望为资源充足的路线创建DRY shoulda风格的匹配器:

it { should resource(:users) }
it { should resource(:articles), only: 'index' }

有没有办法确定是否通过resourceful routing创建了一系列路线?

我考虑的替代方案是在隔离引擎中生成预期路线以进行比较:

class RouteTestEngine < Rails::Engine; end

RouteTestEngine.routes.draw do
  resources :users
end

# A *very* rough draft of the assertion that would follow:
expect(Rails.application.routes.named_routes).to include RouteTestEngine.routes.named_routes

1 个答案:

答案 0 :(得分:1)

您似乎不会在此处测试任何有用的内容,只是通过第二次输入来验证您是否正确输入了路线。

标准路由规范匹配器会更好: https://www.relishapp.com/rspec/rspec-rails/v/2-14/docs/routing-specs

它们允许您确保每条路线都可以到达您想要的路线,甚至是resource生成的路线。