大佬教程收集整理的这篇文章主要介绍了ruby-on-rails – 渲染的Rspec测试模板,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
def create @user = User.new(params[:user]) if @user.save render :template => "success" else flash[:notice] = "Oops Somethings not quite right! :(" render :action => "new" end end
我使用以下规范来测试这个代码
before(:each) do @user = User.new @user.attributes = valid_attributes @params = valid_attributes @user.stub!(:savE).and_return(true) end def do_post post :create end it "should create new user " do count = User.count do_post user = User.new(@params) user.save.should eql(true) User.count.should eql(count + 1) end it "should render the success page on successful signup" do do_post @user.save response.should render_template("success") if @user.save end
但是,该示例失败“它应该成功注册成功页面”与此错误消息
1) 'UsersController handling POST /users should render the success page on successful signup' FAILED expected "success",got "users/new.html.erb" ./spec/controllers/users_controller_spec.rb:67:
成功视图是存储在views / users /中没有操作的模板.我猜想我犯了一个非常根本的错误,并希望得到一些帮助.
在这种情况下使用存根不仅仅是为了模拟成功的保存调用不是一个好主意.为什么不提供有效数据,并确保操作成功?
以下代码用于RSpec> 2.1它使用expect语法.
before(:each) do @params = valid_attributes end it "should create new user" do @_before = User.count post :create,:user => @params expect(assigns(:user)).to_not be_new_record expect(User.count).to eq(@_before + 1) end it "should render the success page on successful signup" do post :create,:user => @params expect(responsE).to be_successful expect(responsE).to render_template("success") end
最后,改变
render :template => "success"
至
render :action => "success"
对于以前的RSpec版本,或者如果您必须使用应用程序语法,请使用
before(:each) do @params = valid_attributes end it "should create new user" do @_before = User.count post :create,:user => @params assigns(:user).should_not be_new_record User.count.should == (@_before + 1) end it "should render the success page on successful signup" do post :create,:user => @params response.should be_successful response.should render_template("success") end
以上是大佬教程为你收集整理的ruby-on-rails – 渲染的Rspec测试模板全部内容,希望文章能够帮你解决ruby-on-rails – 渲染的Rspec测试模板所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。