Ruby on rails 非活动记录模型的机械师
是否可以使用机械师为非activerecord模型创建蓝图?无论我尝试什么,似乎都会产生错误Ruby on rails 非活动记录模型的机械师,ruby-on-rails,ruby,unit-testing,mocking,machinist,Ruby On Rails,Ruby,Unit Testing,Mocking,Machinist,是否可以使用机械师为非activerecord模型创建蓝图?无论我尝试什么,似乎都会产生错误 如果这是不可能的机械师,有没有其他夹具生成宝石可以做到这一点?我还读到《工厂女孩》对此有问题。我对《机械师2 beta 1》做了一些调查,它似乎支持普通的ruby对象。以下是我为让它工作所做的。很高兴了解到任何更简单的解决方案 require 'rubygems' require 'machinist' require 'faker' class YourObject attr_accessor :
如果这是不可能的机械师,有没有其他夹具生成宝石可以做到这一点?我还读到《工厂女孩》对此有问题。我对《机械师2 beta 1》做了一些调查,它似乎支持普通的ruby对象。以下是我为让它工作所做的。很高兴了解到任何更简单的解决方案
require 'rubygems'
require 'machinist'
require 'faker'
class YourObject
attr_accessor :field1, :field2
end
# For all Objects
class Object
extend Machinist::Machinable
def self.blueprint_class
Machinist::Blueprint
end
end
# Or just one object
YourObject.send(:extend, Machinist::Machinable)
YourObject.class_eval do
def self.blueprint_class
Machinist::Blueprint
end
end
YourObject.blueprint do
field1 { rand(1000) }
field2 { Faker::Name }
end
obj = YourObject.make
如果有人好奇的话,FactoryGirl和POROs的一个问题(可能还有其他问题)是它不能处理带参数的构造函数。您可以根据答案进行适当的修改。如果您能提供重现问题的最简单示例,可能会有所帮助。还有,“非活动记录模型”是什么意思?使用ActiveModel的东西,或者使用普通的Ruby对象的东西?我只是指一个不与ActiveRecord/ActiveModel绑定的模型,但是是的,你可以说我正在寻找一种方法来为任何常规Ruby类使用Machinist蓝图。我知道我可以使用OpenStruct来创建自己的工厂方法,但我真的很喜欢Machinist的语法,如果我能将所有内容都放在Machinist的blueprint.rb文件下,那就太好了。