Probando una gem que usa modelos ActiveRecord

Escribí una gem que importa datos a su base de datos si pasa en un modelo ActiveRecord. Por ejemplo:

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

¿Hay una buena manera de probar esta gem? De alguna manera necesitaría conectarme a una base de datos de prueba y crear un modelo de prueba. ¡Gracias!

Principalmente inspirado en esta publicación: http://blog.markstarkman.com/blog/2013/01/23/using-sqlite-to-test-active-record-models/

Primero, en su gemspec, puede agregar ActiveRecord y sqlite3 como dependencias así:

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

Luego, en spec / schema.rb, puede definir su esquema así:

 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 

Luego puedes crear tus modelos en un archivo models.rb:

 class User < ActiveRecord::Base end 

En su spec_helper.rb, desea conectarse a una base de datos sqlite en memoria, cargar el esquema y requerir los modelos:

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