更新到Rails 3.2.6或Rspec 2.11.0时发生路由错误

lul*_*ala 7 rspec ruby-on-rails-3 journey

升级到Rails 3.2.6或Rspec 2.11.0后,我的规范开始显示如下的路由错误:

  4) UsersController GET activate activation code not exist 
     Failure/Error: subject{ get :activate }
     ActionController::RoutingError:
       No route matches {:controller=>"users", :action=>"activate"}
Run Code Online (Sandbox Code Playgroud)

每个钩子错误之后还有一个

An error occurred in an after(:each) hook
  RSpec::Mocks::MockExpectationError: (#<EmailSubscriber[...]>).update_attributes({:enable=>true})
    expected: 1 time
    received: 0 times
  occurred at [...]/spec/controllers/users_controller_spec.rb:75:in `block (3 levels) in <top (required)>'
Run Code Online (Sandbox Code Playgroud)

开发模式下的应用程序运行良好.

lul*_*ala 7

Rspec 2.11.0和Rails 3.2.6都使用最新的Journey gem(1.0.4).它有一些问题,并通过明确地将其锁定到以前的版本,规范错误消失.

gem 'journey', '1.0.3'
Run Code Online (Sandbox Code Playgroud)

UPDATE

我最近使用Journey 1.0.4将Rails更新为3.2.11,并且所有规范都通过了.我的Rspec是2.11.0因此不再需要下载旅程,只需更新Rails.

  • 这不适用于Rails 2.3.8,因为它具有1.0.4或更高版本的依赖性. (3认同)
  • 好吧,这是一个路由错误,我的测试是如此基本,它必须是宝石更新之一,我发现旅程是两个更新的共同依赖 (2认同)