Случайное производство данных по шагам
class Spinach::Features::Signup < Spinach::FeatureSteps
attr_accessor :valid_attributes
before do
valid_attributes = Fabricate.attributes_for(:identity)
#@valid_attributes = Fabricate :identity
end
step 'I am a visitor' do
true
visit root_path
end
step 'I am on the landing page' do
current_path.must_equal root_path
end
step 'I follow signup link' do
click_link('signup_link')
end
step 'I fill name with my name' do
fill_in 'name', with: valid_attributes.name
end
step 'I fill email with my email' do
fill_in "email", with: valid_attributes.email
end
end
Я использую шпинат для создания характерных шагов. Код выше идентифицирует мои этапы функции. Я также использую Minitest для тестирования фреймворка. Я использую самоцвет для изготовления случайных данных.
require "ffaker"
Fabricator(:identity) do
name {Faker::Name.name}
email {Faker::Internet.email}
password_digest "ChtUIGTiBvrm6v6R4PX6sO3netSuN3eW0AbFmXblXvgKM5Z8sFUKy"
end
это мой класс изготовителя для модели идентичности. когда я запускаю функцию регистрации, я вижу ошибку:
undefined method `name' for nil:NilClass
я думаю, что речь идет о Fabricate.Attributes_for. если я использую Fabricate: identity, это не выдаст ошибку.
я не мог решить это. Есть идеи? Заранее спасибо.
1 ответ
Решение
Когда вы делаете:
valid_attributes = Fabricate.attributes_for(:identity)
У вас есть Hash
,
Ну действуй: valid_attributes[:email]
или используйте Openstruct.