2015-07-28 78 views
0

你好,我是在做我的Rspec的應用程序的一些測試(這是我的第一次,我用它)紅寶石未初始化不斷的RecipesController ::食譜

,這是我的測試文件位於規格/控制器/ recipes_controller_spec.rb

require 'spec_helper' 

describe RecipesController do 
    render_views 
    describe "index" do 
    before do 
     Recipe.create!(name: 'Baked Potato w/ Cheese') 
     Recipe.create!(name: 'Garlic Mashed Potatoes') 
     Recipe.create!(name: 'Potatoes Au Gratin') 
     Recipe.create!(name: 'Baked Brussel Sprouts') 

     xhr :get, :index, format: :json, keywords: keywords 
    end 

    subject(:results) { JSON.parse(response.body) } 

    def extract_name 
     ->(object) { object["name"] } 
    end 

    context "when the search finds results" do 
     let(:keywords) { 'baked' } 
     it 'should 200' do 
     expect(response.status).to eq(200) 
     end 
     it 'should return two results' do 
     expect(results.size).to eq(2) 
     end 
     it "should include 'Baked Potato w/ Cheese'" do 
     expect(results.map(&extract_name)).to include('Baked Potato w/ Cheese') 
     end 
     it "should include 'Baked Brussel Sprouts'" do 
     expect(results.map(&extract_name)).to include('Baked Brussel Sprouts') 
     end 
    end 

    context "when the search doesn't find results" do 
     let(:keywords) { 'foo' } 
     it 'should return no results' do 
     expect(results.size).to eq(0) 
     end 
    end 

    end 
end 

當我嘗試通過命令來執行它:

bundle exec rspec spec/controllers/recipes_controller_spec.rb

我失敗了我所有的工商業污水附加費與此錯誤TS:

Failure/Error: xhr :get, :index, format: :json, keywords: keywords 
    NameError: 
     uninitialized constant RecipesController::Recipes 
    # ./app/controllers/recipes_controller.rb:4:in `index' 
    # ./spec/controllers/recipes_controller_spec.rb:12:in `block (3 levels) in <top (required)>' 

我試着看我所有的代碼,但我還沒有找出錯誤

+0

它位於您的控制器第4行。您是否也可以通過此文件? – BroiSatse

+0

看起來像'recipes_controller'的'index'方法中有'Recipes'而不是'Recipe'。 – Pavan

回答

1
NameError: uninitialized constant RecipesController::Recipes 

意味着你index使用Recipes代替Recipe某處(4號線)在控制器中,並且由於您的模型被稱爲Recipe(單數),您會遇到NameError異常。

相關問題