gpt4 book ai didi

ruby-on-rails - RSpec mock_model 和 inherited_resources

转载 作者:数据小太阳 更新时间:2023-10-29 07:57:37 25 4
gpt4 key购买 nike

我正在尝试为 inherited_resources Controller 编写规范。我决定使用 rspec 的 mock_model 模拟所有与数据库的集成。不幸的是,我无法为创建和更新操作编写规范,因为我收到以下错误:https://gist.github.com/936947有人可以帮我解决这个问题吗?

最佳答案

我在使用 flexmock 时遇到了同样的问题。

原因是它没有使用 update_attributes 方法来做出路由决策。它检查 resource.errors 以查看它是否为空。

因此,为了让它正确响应,我们还需要模拟 errors 方法。

这是 lib/inherited_resources/base_helpers.rb 中的相关代码@line 248

  def respond_with_dual_blocks(object, options, &block) #:nodoc:
args = (with_chain(object) << options)

case block.try(:arity)
when 2
respond_with(*args) do |responder|
blank_slate = InheritedResources::BlankSlate.new
if object.errors.empty?
block.call(responder, blank_slate)
else
block.call(blank_slate, responder)
end
end
when 1
respond_with(*args, &block)
else
options[:location] = block.call if block
respond_with(*args)
end
end

关于ruby-on-rails - RSpec mock_model 和 inherited_resources,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5757584/

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