gpt4 book ai didi

ruby - 回滚由 minitest 单元测试创​​建的更改

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

我正在 Minitest 中编写一个创建数据库条目的测试用例。测试运行后,测试所做的所有更改都应回滚。实现这一目标的好方法是什么?

require 'minitest/autorun'
require 'rubygems'
require 'sequel'
require 'factory_girl'

class TestPostgresqlFunctions < MiniTest::Unit::TestCase
def test_simple_function
Factory.find_definitions
user = FactoryGirl.create(:user)
end
end

使用此代码,创建的条目将保留在数据库中。我没有使用 Rails 或任何其他框架。我使用的数据库是 PostgreSQL 9.1。

最佳答案

这应该有效(需要 Sequel 3.29.0 或更高版本):

# Use this class as the base class for your tests
class SequelTestCase < MiniTest::Unit::TestCase
def run(*args, &block)
Sequel::Model.db.transaction(:rollback=>:always){super}
end
end

关于ruby - 回滚由 minitest 单元测试创​​建的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8330060/

25 4 0