Я пытаюсь повторно использовать вспомогательный метод на всех своих фабриках, но не могу заставить его работать. Вот моя установка:
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
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: пользователь
и внутри factory: пользователь
) spec_helper.rb
, у меня уже есть следующее: config.include Tests :: Helpers
, и он дает мне доступ к random_string
в моих спецификациях Я также безуспешно читал следующие ссылки: