ruby-on-rails – 测试使用ActiveRecord模型的gem

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 测试使用ActiveRecord模型的gem前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我写了一个gem,如果你传入一个ActiveRecord模型,它会将数据导入你的数据库.例如:
  1. importer = Importer.new(Widget)
  2. importer.import(data_source)

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

解决方法

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

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

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

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

  1. ActiveRecord::Schema.define do
  2. self.verbose = false
  3.  
  4. create_table :users,:force => true do |t|
  5. t.string :key
  6. t.string :name
  7. t.integer :age
  8. t.datetime :dob
  9.  
  10. t.timestamps
  11. end
  12.  
  13. end

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

  1. class User < ActiveRecord::Base
  2. end

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

  1. require 'active_record'
  2.  
  3. ActiveRecord::Base.establish_connection adapter: "sqlite3",database: ":memory:"
  4.  
  5. load File.dirname(__FILE__) + '/schema.rb'
  6. require File.dirname(__FILE__) + '/models.rb'

猜你在找的Ruby相关文章