目前我正在从 Rails 2.3.smthn 升级到 Rails 3.0。该应用程序有 200 多个路由,并且在使用新的 Router API 重写路由之前,我想为路由编写 (RSpec) 测试。
因为有很多路线并且为它们编写覆盖范围将是很多“繁重的工作”,我想知道是否有办法为这些路线生成测试?
目前我正在从 Rails 2.3.smthn 升级到 Rails 3.0。该应用程序有 200 多个路由,并且在使用新的 Router API 重写路由之前,我想为路由编写 (RSpec) 测试。
因为有很多路线并且为它们编写覆盖范围将是很多“繁重的工作”,我想知道是否有办法为这些路线生成测试?
我和我的同事编写了一个 gem,它为 Rails 应用程序中的每条路线生成路线规范,您可以查看源代码并在此处获取。
我会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
。