Я изучаю книгу "Учим Rails на примере" и пытаюсь запустить тесты. По какой-то причине я не могу заставить rspec работать должным образом.
Если я запускаю команду rspec spec/
по его указанию, я получаю следующую ошибку:
$ 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)
Странно то, что мой Gemfile не указывает версию--
group :development do
gem 'rspec-rails'
end
group :test do
gem 'rspec'
gem 'webrat'
end
Если я последую совету из сообщения об ошибке и использую bundle exec rspec spec/
, то первые два теста пройдут - но новая страница «о», которую мы создали в учебном пособии, завершится неудачно со следующей ошибкой, хотя, насколько я могу, скажите, что страница, которую я построил (и действия контроллера и т. д.), точно такой, какой она должна быть:
Failures:
1) PagesController GET 'about' should be successful
Failure/Error: response.should_be_success
NoMethodError:
undefined method `should_be_success' for #<ActionController::TestResponse:0x00000003539438>
# ./spec/controllers/pages_controller_spec.rb:23:in `block (3 levels) in <top (required)>'
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
Я довольно опытный программист, но я столкнулся с бесконечными проблемами с конфликтующими версиями гемов и сотнями разных способов выполнить все различные задачи с использованием Rails (например, "использовать RVM", "не использовать RVM" , "устанавливать драгоценные камни, используя sudo", "не устанавливать драгоценные камни, используя sudo" и т. д.)
Мой компьютер работает под управлением Ubuntu Linux.
Спасибо за любую помощь - пожалуйста, объясните, если вы хотите, что я делаю не так на языке Ruby Noob!