Nick Urban
2011-May-12 16:23 UTC
integration tests don''t use default_url_options with named routes
Hi All, Integration tests don''t generate routes using default_url_options defined in application controller. That would be okay if there were another way to specify them for tests, but I can''t find one. Any help would be much appreciated! To see this problem: 1) in routes.rb: scope '':path_prefix'' do resources :foos end 2) in application_controller.rb def default_url_options { :path_prefix => ''test'' } end 3) in test/integration/prefix_test.rb: require ''test_helper'' class PrefixTest < ActionDispatch::IntegrationTest test "path prefix" do foos_path end end rake test:integration yields: test_path_prefix(PrefixTest): ActionController::RoutingError: No route matches {:controller=>"foos"} /test/integration/prefix_test.rb:5:in `test_path_prefix'' If I change foos_path to foos_path(:path_prefix => ''bar'') it works fine. I don''t want to have to specify it everywhere, though, and moreover in my real app, path_prefix gets set from params[:path_prefix], so I''d really like it to automatically pick up the appropriate values (as it does in the app -- this is only broken in the tests). Thanks in advance, Nick Urban P.S. It''s worth mentioning that integration tests do make use of the default_url_options in ActionDispatch::Integration::Session, but I can''t find any way to customize its behavior other than with a monkey patch, and even then, I can''t find a way to make it use params[:path_prefix]. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.