erro rspec do rails on rails

Estou acompanhando o livro “Learn Rails by Example” e estou tentando executar os testes. Por alguma razão, não consigo fazer com que o rspec funcione corretamente.

Se eu executar o rspec spec/ command como ele instrui, recebo o seguinte erro:

 $ rspec spec/ /home/desktop/.rvm/gems/ruby-1.9.2-p136/gems/bundler-1.0.21/lib/bundler/runtime.rb:31:in `block in setup': You have already activated rspec-core 2.7.1, but your Gemfile requires rspec-core 2.6.4. Using bundle exec may solve this. (Gem::LoadError) 

O mais estranho é que o meu Gemfile não especifica a versão

 group :development do gem 'rspec-rails' end group :test do gem 'rspec' gem 'webrat' end 

Se eu seguir o conselho da mensagem de erro e usar o bundle exec rspec spec/ seguida, os dois primeiros testes passam – mas a nova página “sobre” que construímos no tutorial falha com o seguinte erro, embora, tanto quanto eu posso dizer a página que eu criei (e as ações do controlador, etc.) são exatamente como deveriam ser:

 Failures: 1) PagesController GET 'about' should be successful Failure/Error: response.should_be_success NoMethodError: undefined method `should_be_success' for # # ./spec/controllers/pages_controller_spec.rb:23:in `block (3 levels) in ' Finished in 0.10861 seconds 3 examples, 1 failure Failed examples: rspec ./spec/controllers/pages_controller_spec.rb:21 # PagesController GET 'about' should be successful 

Eu sou um programador muito experiente, mas eu me deparei com infinitos problemas com versões gêmeas conflitantes e uma centena de maneiras diferentes de realizar todas as diferentes tarefas usando Rails (por exemplo, “use RVM”, “Não use RVM”, “instalar gemas usando sudo “,” não instale gems usando sudo “etc.)

Minha máquina dev está rodando o ubuntu linux.

Obrigado por qualquer ajuda– por favor, explique se você faria o que estou fazendo de errado em linguagem noob Ruby!

Executando o bundle exec está correto, e é necessário porque você tem uma versão mais nova daquela gem instalada que é carregada em vez daquela especificada no seu Gemfile.lock. O uso do bundle exec sobrescreve o caminho de carregamento, fazendo com que apenas as gemas especificadas no seu Gemfile.lock sejam carregadas. (Você pode achar útil aliasgar o bundle exec em algo mais curto).

A resposta para o segundo problema está bem nas mensagens de erro:

 undefined method `should_be_success' 

deve ser should be_success ser should be_success .