2012-11-28 54 views
0

我已經添加生成以下到我的application.rb中文件Rspec的規格沒有

config.generators do |g| 
    g.test_framework :rspec, 

     :fixtures => true, 
     :view_specs => false, 
     :helper_specs => false, 
     :routing_specs => false, 
     :controller_specs => true, 
     :request_specs => true 

    g.fixture_replacement :factory_girl, :dir => "spec/factories" 
end 

然後我產生與

$rails g controller home index 

控制器這產生了投機/控制器/ home_controller_spec規範。 rb看起來像這樣

describe HomeController do 

    describe "GET 'index'" do 
    it "returns http success" do 
     get 'index' 
     response.should be_success 
    end 
    end 

end 

這是由rSpec生成的默認代碼。我能看到的頁面,當我在我的瀏覽器訪問

http://localhost:3000/home/index 

然後當我運行

$bundle exec rspec 

我得到這個錯誤

/Applications/MAMP/htdocs/2012/myapp/spec/controllers/home_controller_spec.rb:3:in `<top (required)>': uninitialized constant HomeController (NameError) 
from /Users/bobwood/.rvm/gems/[email protected]/gems/rspec-core-2.10.1/lib/rspec/core/configuration.rb:746:in `load' 
from /Users/bobwood/.rvm/gems/[email protected]/gems/rspec-core-2.10.1/lib/rspec/core/configuration.rb:746:in `block in load_spec_files' 
from /Users/bobwood/.rvm/gems/[email protected]/gems/rspec-core-2.10.1/lib/rspec/core/configuration.rb:746:in `map' 
from /Users/bobwood/.rvm/gems/[email protected]/gems/rspec-core-2.10.1/lib/rspec/core/configuration.rb:746:in `load_spec_files' 
from /Users/bobwood/.rvm/gems/[email protected]/gems/rspec-core-2.10.1/lib/rspec/core/command_line.rb:22:in `run' 
from /Users/bobwood/.rvm/gems/[email protected]/gems/rspec-core-2.10.1/lib/rspec/core/runner.rb:69:in `run' 
from /Users/bobwood/.rvm/gems/[email protected]/gems/rspec-core-2.10.1/lib/rspec/core/runner.rb:10:in `block in autorun' 

這個錯誤是什麼意思和我如何修復它?

編輯:routes.rb中有一條線在它

get "home/index" 
+0

什麼是你的路由文件是什麼樣子? – Richlewis

+0

添加routes.rb編輯上面 – 32423hjh32423

+0

實際閱讀Matts答案他是正確的,看起來像你讓它比它需要更困難 – Richlewis

回答

1

這個錯誤意味着在運行規範文件不知道你HomeController類 - 它不包括在內。

我想你選擇了一種更難的方法來在Rails中使用RSpec。最簡單的方法是使用rspec-rails。我研究了我的控制器規格,他們做的第一件事是包括來自rspec-rails的rspec_helper.rb。我猜這個文件是用來加載你測試所需的所有Rails類的。

要安裝RSpec的護欄所有你需要做的就是把它添加到您的Gemfile中,然後運行:

rails generate rspec:install