Я пытаюсь использовать вспомогательный метод на всех своих фабриках, но не могу заставить его работать.Вот мои настройки:
Вспомогательный модуль (в spec / support / test_helpers.rb)
module Tests
module Helpers
# not guaranteed to be unique, useful for generating passwords
def random_string(length = 20)
chars = ['A'..'Z', 'a'..'z', '0'..'9'].map{|r|r.to_a}.flatten
(0...length).map{ chars[rand(chars.size)] }.join
end
end
end
Завод (в spec / factories / users.rb)
FactoryGirl.define do
factory :user do
sequence(:username) { |n| "username-#{n}" }
password random_string
password_confirmation { |u| u.password }
end
end
Если я запускаю свои тесты (с rake spec
), я получаю следующую ошибку при создании пользователя с Factory(:user)
:
Failure/Error: Factory(:user)
ArgumentError:
Not registered: random_string
Что мне нужно сделать, чтобы иметь возможностьиспользовать random_string
на своих фабриках?
Я пробовал следующее:
- , используя
include Tests::Helpers
на каждом уровне моего завода (до define
,между define
и factory :user
и внутри factory :user
) - в
spec_helper.rb
, у меня уже есть следующее: config.include Tests::Helpers
, и оно дает мне доступ к random_string
в моих спецификациях - просто требует файл на моем заводе
Я также безуспешно прочитал следующие ссылки: