gpt4 book ai didi

ruby-on-rails - 在启用事务夹具的 Rails 4 中测试 after_commit 钩子(Hook)

转载 作者:行者123 更新时间:2023-12-04 07:34:59 25 4
gpt4 key购买 nike

我有一个 Rails 4 应用程序并且正在使用事务性装置,并且希望我的 after_commit Hook 在运行我的集成规范时触发。

当然,当您使用事务性固定装置时,实际上不会发生任何提交,因此在 Rails 3 中有这个补丁:https://gist.github.com/charleseff/1305285 , 它被做成了一个 gem: 'test_after_commit'

Rails 4 对 active_record 的内部结构进行了足够的更改,以至于 Rails 3 补丁无法移植。

有没有人在 Rails 4 中解决了这个问题?

最佳答案

我通过将以下代码放入 spec/support/helpers/test_after_commit.rb 解决了这个问题

require 'active_record/connection_adapters/abstract/transaction'
module ActiveRecord
module ConnectionAdapters
class SavepointTransaction < OpenTransaction
def perform_commit_with_transactional_fixtures
commit_records if number == 1
perform_commit_without_transactional_fixtures
end

alias_method_chain :perform_commit, :transactional_fixtures
end
end
end

https://gist.github.com/cmaitchison/5168104

关于ruby-on-rails - 在启用事务夹具的 Rails 4 中测试 after_commit 钩子(Hook),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15426396/

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