2012-11-21 68 views
1

考虑例如:FactoryGirl不会初始化工厂

*# spec/factory/sections.rb* 

FactoryGirl.define do 

    factory :any_section do 
     (...) 
    end 


    factory :fake_section do 
     (...) 
    end 


    factory :section do 
     (...) 
    end 
end 

我发现我的RSpec的测试只能看到:section工厂。所有其他人最终抛出一个错误,如:uninitialized constant FakeSection

这是为什么?

回答

0

的问题不在于FactoryGirl没有看到any_sectionfake_section工厂,那就是你没有指定自己的班级,因此它被猜测的名字(即any_section变得AnySectionfake_section成为FakeSection)。

要解决该问题只指定类是Section使用class选项:

factory :any_section, :class => Section do 
    (...) 
end 


factory :fake_section, :class => Section do 
    (...) 
end 

又见this article

+0

就是这样,谢谢! –