2013-11-09 68 views
1

我想給測試控制器的這部分使用RSpec:RSpec的錯誤:測試找不到表

before (:each) do 
    @supercar = Factory :supercar 
end 

describe "show" do 

    it "assigns the requested supercar to the @supercar" do 
    get :show, :id => @supercar.id 
    assigns(:supercar).should == @supercar 
    end 
... 

@supercar = Supercar.find(params[:id]) 

上文提到我的控制器規格測試部分不過,我試圖運行命令rake db:migrate,但仍收到此錯誤:

Failure/Error: @supercar = Factory :supercar 
    ActiveRecord::StatementInvalid: 
     Could not find table 'supercar' 
+0

我很驚訝它不是在尋找表'超級跑車'。你有沒有在Supercar Model上設置表名? –

+0

工廠調用不應該看起來像'Factory.create(:supercar)' - 這看起來像舊的FactoryGirl語法。我習慣於看到更像'@car = FactoryGirl.create(:supercar)' –

+1

的東西請確保您已正確設置測試數據庫:在rake db:migrate後運行rake db:test:clone –

回答

1

的解決方案是運行這個逗號nd:

rake db:test:prepare 

它正在準備測試數據庫,通過在那裏加載該方案。