测试使用 ActiveRecord 模型的 gem

2023-11-25

我编写了一个 gem,如果您传入 ActiveRecord 模型,它会将数据导入到您的数据库中。例如:

importer = Importer.new(Widget)
importer.import(data_source)

有没有好的方法来测试这个宝石?我需要以某种方式连接到测试数据库并创建测试模型。谢谢!


主要灵感来自这篇文章:http://blog.markstarkman.com/blog/2013/01/23/using-sqlite-to-test-active-record-models/

首先,在 gemspec 中,您可以添加 ActiveRecord 和 sqlite3 作为依赖项,如下所示:

spec.add_development_dependency "activerecord", "~> 4.0.0"
spec.add_development_dependency "sqlite3"

然后在spec/schema.rb中,您可以像这样定义模式:

ActiveRecord::Schema.define do
  self.verbose = false

  create_table :users, :force => true do |t|
    t.string :key
    t.string :name
    t.integer :age
    t.datetime :dob

    t.timestamps
  end

end

然后您可以在 models.rb 文件中创建模型:

class User < ActiveRecord::Base
end

在你的spec_helper.rb中,你想要连接到内存中的sqlite数据库,加载模式,并需要模型:

require 'active_record'

ActiveRecord::Base.establish_connection adapter: "sqlite3", database: ":memory:"

load File.dirname(__FILE__) + '/schema.rb'
require File.dirname(__FILE__) + '/models.rb'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

测试使用 ActiveRecord 模型的 gem 的相关文章

随机推荐