gpt4 book ai didi

ruby-on-rails - flash[:notice]. should_not be_nil 在 rspec 中失败

转载 作者:行者123 更新时间:2023-12-04 15:14:45 26 4
gpt4 key购买 nike

这是 Controller 的 rspec 代码:

it "should render edit if update was not saved" do
item = Factory(:lease_item)
session[:corp_head] = true
post 'update', {:id => item.id, :name => 'nil'}
flash[:notice].should_not be_nil
response.should render 'edit'
end

Controller 中的更新是:
  def update
if (eng? && dept_head?) || corp_head? || ceo?
@lease_item = LeaseItem.find(params[:id])
@lease_item.input_by_id = session[:user_id]
if @lease_item.update_attributes(params[:lease_item], :as => :roles_update)

#redirect
redirect_to URI.escape("/view_handler?index=0&msg=Lease item updated successfully")
else
#back to new
render 'edit', :notice => "Item NOT updated"
end
else
#back to previous page
redirect_to URI.escape("/view_handler?index=0&msg=NO right to update lease item")
end
end

这是来自 rspec 的错误代码:
  1) LeaseItemsController GET 'update' should render edit if update was not saved
Failure/Error: flash[:notice].should_not be_nil
expected: not nil
got: nil

“项目未更新”预计会出现在 Flash 中。但是,为什么 flash[:notice] 没有任何内容?或者如何 rspec 有一 strip 有渲染“编辑”的消息,:notice => '项目未更新'

谢谢。

更新:

这是 Controller 的变化:
      ...........
else
#back to new
flash[:notice] = "Item NOT updated"
render 'edit'
end
.........

这是通过的 rspec 代码:
   it "should render edit if update was not saved" do
item = Factory(:lease_item)
session[:corp_head] = true
post 'update', {:id => item.id, :lease_item => {:name => 'nil'}}
flash.should_not be_nil
response.should render_template(:action=> "edit")
end

如果使用 flash[:notice].should_not be_nil(或 .. flash.now[:notice]...),则它不起作用。错误是 Got nil,与之前相同。此外 response.should render 'edit'(或 ... render :action => 'edit')也没有通过。错误是 NameError 或 NoMethodError。不知道为什么。

最佳答案

将您的其他更改为:

else
#back to new
flash[:notice] = "Item NOT updated"
render 'edit'
end

关于ruby-on-rails - flash[:notice]. should_not be_nil 在 rspec 中失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8452644/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com