Ruby on rails 为什么赢了';我的rspec控制器对象等价性测试?

Ruby on rails 为什么赢了';我的rspec控制器对象等价性测试?,ruby-on-rails,rspec,Ruby On Rails,Rspec,每次都返回一个错误的测试。我还使用了matcher的be____实例 def new @partner_setting = PartnerSetting.new respond_to do |format| format.html # new.html.erb format.json { render json: @partner_setting } end it 'assigns a valid partner settings object to @partner_

每次都返回一个错误的测试。我还使用了matcher的be____实例

 def new
   @partner_setting = PartnerSetting.new

  respond_to do |format|
  format.html # new.html.erb
  format.json { render json: @partner_setting }
end


it 'assigns a valid partner settings object to @partner_setting' do
  expect( assigns(:partner_setting) ).to be_an PartnerSetting
end
我看不出有什么问题

   get :new

在你的代码中。您必须首先调用控制器操作。

您需要告诉测试转到控制器操作。否则它怎么知道要测试什么?因此,在您预期之前,您需要添加

get :new
旁注:

it 'the action assigns a non nil and valid Object to @partner_setting' do  
  expect(assigns(:partner_setting)).should_not be_nil
  expect(assigns(:partner_setting)).to be_an Object
end
工作!!!即使不叫“新”也不行


默认操作是重定向到登录页面

我想你在什么地方给控制器打过电话(
get:new
),是吗?(顺便说一句,你应该在这里使用
be_a
matcher)我是个十足的骗子!谢谢你的帮助!