为什么我的 rspec 控制器不测试对象等效性?

Why won't my rspec controller test for object equivalence?

这returns每次都是错误的测试。我还使用了 be_an_instance_of 匹配器。

 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

成功了!!!即使得到 #new ISN'T called!

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