Ускорение тестирования контроллеров rspec: использование до того, как все закончится неудачно?

У меня есть простой тест контроллера, содержащий ao следующий код:

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.

Это намеренно? Есть ли способ обойти это?

12
задан nathanvda 6 October 2011 в 15:34
поделиться