gpt4 book ai didi

ruby-on-rails - Rails minitest,数据库清理器如何将 use_transactional_fixtures = false

转载 作者:行者123 更新时间:2023-12-02 21:40:45 24 4
gpt4 key购买 nike

我想在 ministest 中禁用 use_transactional_fixtures = false 以捕获 after_commit 回调。我应该设置什么以及在哪里设置?

最佳答案

您有几个选择。一种是创建一个没有事务固定装置的测试,并希望对测试数据库所做的更改不会破坏任何其他测试。

class SomethingTest < ActiveSupport::TestCase
self.use_transactional_fixtures = false

def test_something_with_after_commit
# do work here, which will change your test database
end
end

您的另一个选择是保留事务固定装置,但手动调用 after_commit 回调。

class SomethingTest < ActiveSupport::TestCase
def test_something_with_after_commit
something = Something.new
something.save
something.after_commit
# verify things happened as expected
end
end

还有一个选择是将逻辑从 after_commit 回调中移出到一个新对象中,您可以在其中为其编写适当的测试,而无需依赖要调用的回调。

关于ruby-on-rails - Rails minitest,数据库清理器如何将 use_transactional_fixtures = false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20488758/

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