Ответ Джинни может сработать, но если, как упомянул Шон, вам нужно решение только с ActiveRecord вместо Rails, подумайте об этом:
Недавно я разработал гем для связывания некоторых моделей ActiveRecord без использования Rails.Вот что я сделал, чтобы протестировать свои модели с помощью rspec:
spec / spec_helper.rb:
ActiveRecord::Base.establish_connection(adapter: 'sqlite3',
database: ':memory:')
ActiveRecord::Schema.define do
require_relative '../lib/db/migrate/create_models'
end
lib / db / migrate / create_models.rb: (чтобы сделать этот файл, я скопировал / вставил фактический schema.rb, сгенерированный миграциями)
class CreateModels < ActiveRecord::Migration[5.1]
create_table "users", force: :cascade do |t|
t.string "uid", default: "", null: false
t.string "email", null: false
// other attributes
end
// other tables
end
Это создаст таблицы, необходимые для запуска ваших тестов.
Не забудьте указать spec_helper в вашем файле * _spec.rb, и все готово.