Как сделать RSpec для общего модуля ActiveRecord без связанной таблицы базы данных?

Использование RSpec 2.6 / Rails 3.1 / Postgres:

Я пишу вспомогательный модуль (в моей lib/), который может включать любая AR-модель. Я хотел бы написать спецификацию для этого модуля. Он должен быть включен моделью AR::Base, потому что он загружает ассоциации при включении и полагается на некоторые методы AR, но я не хочу использовать мою существующую модель при написании rspec для этого модуля.

Я бы просто хотел создать произвольную модель AR, но очевидно, что у нее не будет связанной таблицы в базе данных, а AR умирает. Вот что я хочу сделать:

class SomeRandomModel < ActiveRecord::Base
  include MyModule

  # simulate DB attributes that MyModule would be using
  attr_accessor :foo, :bar, :baz 
end

describe SomeRandomModel do
  it '#some_method_in_my_module' do
    srm = SomeRandomModel.new(:foo => 1)
    srm.some_method_in_my_module.should eq(something)
  end
end

Конечно, я получаю ошибку в postgres о несуществующем отношении.

Спасибо за помощь!

14
задан janechii 17 November 2014 в 16:35
поделиться