gpt4 book ai didi

ruby-on-rails - 使用 RSpec 测试 Rails 3 respond_with

转载 作者:行者123 更新时间:2023-12-01 04:09:38 25 4
gpt4 key购买 nike

我最近更改了我的 Controller 代码:

  def create
@checklist_item = @checklist.items.build(params[:checklist_item])
if @checklist_item.save
flash[:notice] = "Successfully created checklist item."
redirect_to checklist_item_url(@checklist, @checklist_item)
else
render :action => 'new'
end
end


  respond_to :html, :json
def create
@checklist_item = @checklist.items.build(params[:checklist_item])
if @checklist_item.save
flash[:notice] = "Successfully created checklist item."
end
respond_with @checklist_item
end

但是我之前的 Controller 代码运行良好的规范失败了:
  it "create action should render new template when model is invalid" do
checklist_item.stub(:valid? => false)
checklist.stub_chain(:items, :build => checklist_item)
post :create, :checklist_id => checklist.id
response.should render_template(:new)
end

随着错误:
1) Checklists::ItemsController create action should render new template when model is invalid
Failure/Error: response.should render_template(:new)
MiniTest::Assertion:
Expected block to return true value.

我不确定如何更改规范。当我在浏览器中测试它时,一切仍然相同(它呈现新的)。

最佳答案

很有趣,刚试过,确实是response不包含太多。

这只是状态 302。测试:response.status.should eq 302
像这样的 body :
"<html><body>You are being <a href=\"new_url">redirected</a>.</body></html>"
这也很容易测试。

我再挖一点。

编辑:

即使与 render_views , response仍然只是重定向。

您也可以查看 response.header看起来像:

{"Location"=>"http://test.host/users", "Content-Type"=>"text/html; charset=utf-8"}

关于ruby-on-rails - 使用 RSpec 测试 Rails 3 respond_with,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7069749/

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