隔离测试AR模型?
问题描述:
我试图重组模型规格来孤立地测试它(对待ActiveRecord作为第三方),但是我在加载我的模型时遇到了问题,所以我可以删除AR的东西...隔离测试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
只有(用于调试);它没有不是加载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
。
如果您仍然在寻找答案,请查看此要点https://gist.github.com/2068977以仅加载AR并建立数据库连接 – Blastula