【发布时间】:2013-02-18 08:30:19
【问题描述】:
我在 mongoid.yml 文件中使用 mongoid 作为我的数据库来运行 rails。
问题是每次我运行 rspec 它都会尝试连接到 mongodb 后端。
我想停止这种行为并在我的测试中使用模拟。
我怎样才能做到这一点?
【问题讨论】:
-
您能提供一些示例代码吗?
标签: ruby-on-rails rspec mongoid
我在 mongoid.yml 文件中使用 mongoid 作为我的数据库来运行 rails。
问题是每次我运行 rspec 它都会尝试连接到 mongodb 后端。
我想停止这种行为并在我的测试中使用模拟。
我怎样才能做到这一点?
【问题讨论】:
标签: ruby-on-rails rspec mongoid
对于 rspec 中的单元测试,如果您对模型对象进行 Mongoid 持久性调用,则需要将这些持久性调用替换为对模拟/存根库的调用。例如,factory-girl 提供模型对象的模拟实现,然后您可以通过调用非持久性方法在单元测试中使用它...
person = FactoryGirl.build(:person)
person.should be_a_kind_of Person
避免调用持久化到测试数据库的方法,例如'FactorGirl.create'
【讨论】: