@routes是在“before(:all)”之后和“before(:each)”之前创建的吗?

时间:2011-07-27 04:49:33

标签: ruby-on-rails rspec rspec-rails

在rails项目中,当我写一些控制器的规格时:

describe "POST 'create'" do
context "valid user" do
    before(:all) {
  @user_attributes = Factory.attributes_for(:user)
  @user = Factory(:user, @user_attributes)
  post :create, :user=>@user_attributes
}
specify { flash[:notice].should eq("Welcome")}
specify { response.should redirect_to(:action=> :index) }
end
end

我遇到了一些错误:

失败/错误:发布:创建,:用户=> @user_attributes

  

RuntimeError:

     

@routes是nil:确保在测试的设置方法中设置它。

     

#。/ spec / control / session_controller_spec.rb:22

     

#。/ magazine_slave.rb:22:在'run'中   #magazine_slave_provider.rb:17

当我在之前(:all)之前更改为(:each)时,测试将通过。

@routes是在“before(:all)”之后和“before(:each)”之前创建的

1 个答案:

答案 0 :(得分:1)

是的,我认为another question已经回答了这个问题。从对话here开始,看起来可能会出现修复。