【发布时间】:2011-10-06 15:34:27
【问题描述】:
我有一个简单的控制器测试,包含 a.o.以下代码:
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.
这是设计使然吗?有没有办法绕过它?
【问题讨论】:
-
您找到解决方案了吗?我遇到了同样的问题。
标签: ruby-on-rails rspec rspec2