我有一個簡單的控制器測試,包含a.o.下面的代碼:加速rspec控制器測試:使用之前全部失敗?
context "POST :create" do
before (:each) do
post :create, :user_id => @user.id,
:account => { .. some data ... }
end
it { response.status.should == 201 }
it { response.location.should be_present }
end
現在我想到了一個非常簡單的方法來加快這一測試,並使用before(:all)
代替before(:each)
的。在這種情況下,該帖子只能進行一次。
所以我寫了:
context "POST :create" do
before (:all) do
post :create, :user_id => @user.id,
:account => { .. some data ... }
end
it { response.status.should == 201 }
it { response.location.should be_present }
end
但後來我得到以下錯誤:
RuntimeError:
@routes is nil: make sure you set it in your test's setup method.
這是設計?有沒有辦法避開它?
您是否找到了解決方案?我遇到了同樣的問題。 – ktusznio