如何解决有没有Rails工厂可以帮助我测试非持久性模型?
| 我正在开发一个Rails应用程序,在该应用程序上,模型是纯红宝石类,没有任何持久层(没有活动记录或类似记录)。我想用一些工厂提供的所有功能(机械师,工厂女孩)从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命令创建一个工厂Dog:
Sham::Config.activate!
Dog.sham!
=> #<struct Dog name=\"Barney\">
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。