我试图调用工厂内部的一个helper方法,但是它总是以找不到方法的形式返回。
/规格/助手/工厂.rb
module Helpers
module Factories
def array_of_fakers(faker_class, field, number_of_elements)
faker_array = Array.new
number_of_elements.times do
factory_array.push(class_eval(faker_class).send(field))
end
faker_array
end
end
end
它的名字是这样的...
factory :salesman do
clients { Helpers::Factories.array_of_fakers("Faker::Company", "name", rand(1..5)) }
...
end
我试过在rails_helper,spec_helper和文件本身中请求,但是都返回相同的结果。我也试过不包含模块名而只包含方法名,但是也不起作用。这可能吗?
4条答案
按热度按时间8ljdwjyq1#
查看factory_bot GETTING_STARTED.md文档中推荐的***spec/support/factory_bot.rb***配置文件设置...
在我的例子中,我没有使用rails,但这对我很有效:
xyhw6mcr2#
在
FactoryBot::DefinitionProxy
中包含您的助手模块:mfpqipee3#
您可以将其添加到
spec/factories
文件夹中在工厂里就这么叫:
s8vozzvw4#
或:
前者更漂亮一些,但两者都可以。因此,你可以在任何地方调用
::Helpers::Factories.array_of_fakers
。注意有时可能需要的前导双冒号。