2014-06-14 102 views
2

我正在關注的NETTUTS介紹到Rails的截屏,以獲得rspec的/豚/防護物等一個更好的手柄和幾個錯誤後,我無法獲得通過這一個:錯誤使用RSpec的和水豚

/home/jonlee/.rvm/gems/[email protected]_rails_4_0/gems/capybara-2.3.0/lib/capybara/rails.rb:15:in `<top (required)>': undefined method `join' for nil:NilClass (NoMethodError) 
    from /home/jonlee/Projects/rails/guardtest/spec/spec_helper.rb:3:in `require' 
    from /home/jonlee/Projects/rails/guardtest/spec/spec_helper.rb:3:in `<top (required)>' 

我spec_helper如下:

require 'rails' 
require 'rspec/core' 
require 'capybara/rails' 


RSpec.configure do |config| 
    config.include Capybara::DSL 
    end 

我的Gemfile有:

group :test, :development do 
    gem 'rspec-core' 
    gem 'capybara' 
    gem 'guard-rspec' 
end 

即時通訊使用: 紅寶石 - 2.1.1 導軌 - 4.0.5 rspec的 - 3.0.1 水豚 - 2.3.0

改變spec_helper.rb文件的建議,甚至在需要 'rspec的/核心' 和不斷變化的寶石rspec-核心我仍然有這個錯誤。

spec_helper中的順序是否需要在Rspec.configure塊中執行一些進一步的工作?

GIT - https://github.com/JonleePeakman/guardtest

回答

1

你的Gemfile有gem 'rspec-core'。它應該是gem 'rspec-rails'

您有RSpec 3.0.1,與以前的版本相比,配置有很大變化。小心不要過時的教程或博客帖子。你使用過RSpec發生器來設置RSpec嗎?

$ rails generate rspec:install 

你應該有文件:

.rspec 
spec/spec_helper.rb 
spec/rails_helper.rb 

水豚會工作「開箱即用」,無需更改配置文件。嘗試刪除您的spec/spec_helper.rb文件並使用RSpec生成器進行設置。

作爲NetTuts教程的替代方案,您可能需要查看我編寫的與RSpec 3.0最新的RSpec Tutorial

+0

我沒有使用rspec:install,那些是我的文件,然後我創建了一個guard init rspec文件,從頭開始我有這個問題。事實上,我有其他人,我設法克服,但這個錯誤真的讓我感到困惑。 – JonleePeakman

+0

如果您使用'gem'rspec-rails''而不是'gem'rspec-core'',會發生什麼? –