0

我正在使用 Mongoid 类将 Ruby 对象持久保存到 MongoDB。示例对象:

class Option
  include Mongoid::Document

  field :name, type: String
  field :created_at, type: Time, default: ->{ Time.now }

end

在我的测试中,我发现自己在创建后存根实例以避免对象碰到 mongo:

o1 = Option.new
o1.stub(:save!).and_return true #stub method
o1.name = 'red'
o1.save!

明显的问题是我需要为每个实例都这样做。有没有办法可以存根该Mongoid::Document.save!方法,即混合?这样我就可以知道任何使用混合的文档都会被save!存根。

提前致谢。

4

1 回答 1

1

当然,您可以使用 monkeypatch Mongoid::Document,但我建议不要这样做,其他测试可能需要 original save!。工厂方法可以减轻重复存根的不便:

def option_with_stubbed_save
  option = Option.new
  option.stub(:save!).and_return true
  option
end 
于 2012-11-25T17:46:38.257 回答