Я пытаюсь реструктурировать спецификацию модели, чтобы протестировать ее изолированно (относиться к ActiveRecord как к стороннему), однако у меня возникают проблемы с загрузкой в моей модели, чтобы я мог заглушить AR-материал ...
Итак, что я делал, так это:
app / model / city.rb:
class City < ActiveRecord::Base
# ...
end
spec / model /city_spec.rb:
require 'spec_helper'
describe City do
# ...
end
По умолчанию spec_helper
загружает Rails, чего я и стараюсь избегать (медленно).Я пытался сделать это:
приложение / модель / city.rb:
require 'active_record'
class City < ActiveRecord::Base
# ...
end
spec / model / city_spec.rb:
require 'spec_helper_lite'
describe City do
# ...
end
... где spec_helper_lite
содержит только require 'pry'
(для отладки); не загружает Rails.Однако запуск спецификации с этим изменением и проверка City
дает мне два разных результата.
Первый дает мне: City(id: integer, created_at: datetime, updated_at: datetime, name: string)
Последний дает мне: #<ActiveRecord::Aggregations::ClassMethods:0x3fc61647de40>
Это приводит к проблемам, когда я пытаюсь вызвать что-то вроде City.new
: ActiveRecord::ConnectionNotEstablished: ActiveRecord::ConnectionNotEstablished
Что мне нужно сделать, чтобы загрузить мою модель City
без загрузки Rails, чтобы я могзаглушить биты AR?
Я использую ruby 1.9.3
и rails 3.1.1
.