Rails 3 升级:生成路由测试



目前我正在从Rails 2.3.smthn升级到Rails 3.0。该应用程序有 200+ 个路由,在使用新的路由器 API 重写路由之前,我想为路由编写 (RSpec) 测试。

因为有很多路线,为它们编写覆盖范围将是很多"繁重的工作",我想知道是否有办法为这些路线生成测试?

我会用rake routes列出你当前的路由,然后写一个小的Ruby程序来解析每一行并生成你想要的测试,形式如下:

expect(:get => "/articles/2012/11/when-to-use-routing-specs").to route_to(
  :controller => "articles",
  :month => "2012-11",
  :slug => "when-to-use-routing-specs"
)

如 https://www.relishapp.com/rspec/rspec-rails/docs/routing-specs 中所述

但是,我不确定如何测试命名路由,或者如何测试没有定义其他路由。您可能希望通过一个测试来补充这一点,该测试将 rake routes 的先前输出与 rake routes 的当前输出进行比较。

我和我的同事写了一个 gem,可以在 Rails 应用程序中为每条路线生成路线规范,您可以在此处查看源代码并获取。

最新更新