我正在使用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!
存根。
提前致谢。
答案 0 :(得分:1)
当然,您可以使用monkeypatch Mongoid::Document
,但我建议不要这样做,其他测试可能需要原始save!
。可以通过工厂方法减轻重复存根的不便:
def option_with_stubbed_save
option = Option.new
option.stub(:save!).and_return true
option
end