升级到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"}
每个钩子错误之后还有一个
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)>'
开发模式下的应用程序运行良好.
解决方法
Rspec 2.11.0和Rails 3.2.6都使用最新的Journey gem(1.0.4).它有一些问题,并通过明确地将其锁定到以前的版本,规范错误消失.
gem 'journey','1.0.3'
UPDATE
我最近使用Journey 1.0.4将Rails更新为3.2.11,并且所有规范都通过了.我的Rspec是2.11.0因此,不再需要下载旅程,只需更新Rails即可.