Getting weird "no route matches" error, using rspec2 and rails3 (just migrated) but app works

Hi there,

in my main view i have a link to the root_path, which converts to

{:controller => "home", :action => :index}

In every spec i run, i get the error:

No route matches {:controller=>"home"}

While if i run the application in development, everything renders
without any problem and is clickable correctly.

Does anybody have any clues as to what i did wrong?

I should add that the rails application is in the process of being
migrated from rails 2.3.11 to rails 3.
I must have overlooked something, but i can’t see what.

Does anybody have any tips?

More information:

If i run

rspec spec/**/*_spec.rb

I suddenly get the same errors as when using rake spec. So???

rspec spec/controllers/user_controller/*_spec.rb

gives all green, and with the first command those same specs fail ???

without any problem and is clickable correctly.

[EDIT: more findings]

I have done some more digging. The test run perfectly fine in
Rubymine, or if i use the command-line and type

rspec spec/controllers/users_controller/*.spec.rb

But they do not work if I use

rake spec

What is the difference? I have deleted the lib/tasks/rspec.rake file
(which was generated for rspec1) and i can see that the correct
command is executed:

bundle exec rspec

So I am a bit at a loss here.

I found it! It took my a while, eventually i diffed the log-files that
see what happens differently.

Apparently I have on spec file, where we try to test a baseclass.
Inside that spec we define a new controller that derives
from that baseclass, with a dummy index method.

And also we need the routes, so inside that spec the following code
was to be found:

ActionController::Routing::Routes.draw do |map|
  map.connect ':controller/:action/:id'
  map.connect ':controller/:action/:id.:format'
end

and somehow this spec was always run first. This effectively clears
the whole routing configuration i guess.

Not sure if this change is caused by rails3 or rspec2, anyway the
majority of my tests are now working, just need to fix this one
test now.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs