如何在Rails 3插件中测试路由?

时间:2010-08-08 13:30:18

标签: ruby-on-rails ruby rspec ruby-on-rails-plugins

我尝试使用推荐的方式(来自Rails指南)来测试插件中生成的路由,但测试仍然失败。

奇怪的是,如果我在创建路线之后重新加载路线(或者我认为),测试失败,但是如果我让测试通过一次(例如使用自动测试),那么路线会在后续尝试中被识别。

以下是代码:

describe "named route report_with_last_name_smith_path" do
  before :all do
    Reports::Application.routes.draw do
        match "/report_some_report_for_us" => "report#report_some_report_for_us", 
              :as => :report_some_report_for_us
    end
    Rails.application.reload_routes! # If I leave this out, then the test
                                     # passes the second time that autotest/autospec
                                     # go through.
  end
  it "route for every record" do
    {:get => '/report_some_report_for_us'}.should route_to(:controller => 'report', :action => 'report_some_report_for_us')
  end
end

知道如何让它一直通过吗?

1 个答案:

答案 0 :(得分:1)

嗯。适用于http://github.com/rspec/rspec-rails的rails-3的rspec-rails-2自述文件有一个“路由规范”部分。最新的RSpec不需要before :all吗?