有没有轨道工厂可以帮我测试非持久型号



我正在开发一个rails应用程序,该应用程序上的模型是没有任何持久层(没有活动记录或类似内容)的普通ruby类。我想用一些工厂提供的所有细节(机械师、工厂女工)来测试RSpec的这些模型。这些模型将来可能会与持久性模型建立关联,或者可能实现自定义的持久性模型。

有什么建议吗?

我喜欢使用Sham宝石。只要你有一个符合一些基本实现细节的非持久性模型,你就可以了。例如,在我的Rails应用程序中,我会执行以下操作:

# sham/dog_sham.rb
class Dog::Sham
  def self.options
    { name: "Barney" }
  end
end
# app/models/dog.rb
class Dog < Struct.new(:name)
  def self.create options
    self.new(options[:name])
  end
end

然后在控制台中,我可以使用sham命令创建一个工厂狗:

Sham::Config.activate!
Dog.sham!
=> #<struct Dog name="Barney">

相关内容

  • 没有找到相关文章