我正在尝试重新构建模型规范以单独测试它(将ActiveRecord视为第三方),但是我在加载模型时遇到问题,因此我可以将AR内容存根...
所以,我一直在做的是:
应用/模型/ city.rb:
class City < ActiveRecord::Base
# ...
end
规格/型号/ city_spec.rb:
require 'spec_helper'
describe City do
# ...
end
默认spec_helper
加载Rails,这是我想要避免的(慢)。我试过这样做:
应用/模型/ city.rb:
require 'active_record'
class City < ActiveRecord::Base
# ...
end
规格/型号/ 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
如果在不加载Rails的情况下加载我的City
模型,我该怎么办?这样我就可以删除AR位?
我正在使用ruby 1.9.3
和rails 3.1.1
。