Rspec Rails、なんか仕様が変わった?
rspecとrspec-railsを1.1.12から1.2.0にアップデートしたら、なんか、今まで通ってたexamplesが通らなくなったwww
しかも、オイラが書いた訳じゃないものだしwww
restful_authenticationなんだけど。
具体的には、
- spec/controllers/users_controller_spec.rb
- spec/controllers/users_controller_spec.rb
- spec/controllers/sessions_controller_spec.rb
どれも、ルーティング絡み。
どれも、「んなアクションねぇよ」系。
該当exampleは、こんな感じ。
it "should route users's 'update' action correctly" do route_for(:controller => 'users', :action => 'update', :id => '1').should == "/users/1" end
エラー・メッセージは、こんな感じ。
Test::Unit::AssertionFailedError in 'UsersController route generation should route users's 'update' action correctly' The recognized options <{"action"=>"show", "id"=>"1", "controller"=>"users"}> did not match <{"action"=>"update", "id"=>"1", "controller"=>"users"}>, difference: <{"action"=>"update"}>
んんんん?
route_forが変わった?
んじゃあ、ちょっとプロジェクト自体も、2.3.2にアップデートする。
# config/environment.rb -RAILS_GEM_VERSION = '2.2.2' unless defined? RAILS_GEM_VERSION +RAILS_GEM_VERSION = '2.3.2' unless defined? RAILS_GEM_VERSION
で、
$ rake rails:update
ん。
で、spec回す。
わっはっは。
failure増えたwwww
どないせえとwww
増えたのは、この辺。
1) NoMethodError in 'UsersController named routing should route users_path() to /users' undefined method `formatted_users_path' for #<Spec::Rails::Example::ControllerExampleGroup::Subclass_4::Subclass_3:0x273c0b0> ./spec/controllers/users_controller_spec.rb:175: 2) NoMethodError in 'UsersController named routing should route new_user_path() to /users/new' undefined method `formatted_new_user_path' for #<Spec::Rails::Example::ControllerExampleGroup::Subclass_4::Subclass_3:0x2556f5c> ./spec/controllers/users_controller_spec.rb:181: 3) NoMethodError in 'UsersController named routing should route user_(:id => '1') to /users/1' undefined method `formatted_user_path' for #<Spec::Rails::Example::ControllerExampleGroup::Subclass_4::Subclass_3:0x252aec0> ./spec/controllers/users_controller_spec.rb:187:
行数は気にしない。
アレ?
rails 2.3.2から、formatted_ほげ_pathって、効かなくなったんだっけ?
じゃあ、該当exampleからformatted_ほげほげの「formatted_」を削除。
ん。
でも、根本的なところの解決にはなっていない訳でwww
まいったな...
なんか、map.resourcesとか、map.resourceでのルーティングを拾ってない臭いんだよな...
どうしよう...