我想在工厂创建期间引用工厂代表的类。这可能吗?
这就是我现在正在做的事情:
factory :foo do # Foo class
name "Foo"
...
initialize_with { Foo.some_complicated_method(attributes) }
factory :bar_foo do
name "Bar"
initialize_with { BarFoo.some_complicated_method(attributes) }
end
end
我想要做的是引用类名,这样我可以这样做(用适当的方法调用替换__factory_class__
):
factory :foo do
name "Foo"
...
initialize_with { __factory_class__.some_complicated_method(attributes) }
factory :bar_foo do # Runs initialize_with using BarFoo instead of Foo
name "Bar"
end
end
我想要的是什么?请注意,BarFoo
是Foo
的子类。
答案 0 :(得分:4)
这是不可能的。它在Custom Construction部分的FactoryGirl的入门文档中有所描述:
使用
initialize_with
时,您在调用new
时不必自行声明该类;但是,您要调用的任何其他类方法都必须在类中明确调用。