Ruby on rails 为什么赢了';我的rspec控制器对象等价性测试?
每次都返回一个错误的测试。我还使用了matcher的be____实例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_
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)我是个十足的骗子!谢谢你的帮助!