我有一个简单的控制器测试,包含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