Примечание: я очень новичок в Cucumber.
Я пытаюсь сделать общий шаг (не уверен, существует ли он где-то уже или нет), чтобы вы могли легко добавлять объекты к другому объекту, учитывая, что существует связь. Я хочу сделать что-то вроде:
manage_notes.feature
Background: Login User
Given the following user records
| email | password |
| test@email.com | password |
Given I am logged in as "test@email.com" with password "password"
Scenario: Edit existing note
Given I have already created a note that belongs to current_user
general_steps.rb
Given /^the following (.+) records?$/ do |factory, table|
table.hashes.each do |hash|
Factory(factory, hash)
end
end
Given /^I am logged in as "([^\"]*)" with password "([^\"]*)"$/ do |email, password|
unless email.blank?
visit new_user_session_path
fill_in "Email", :with => email
fill_in "Password", :with => password
click_button "Sign In"
end
end
note_steps.rb
Given /^I have already created a (.+) that belongs to (.+)$/ do |factory, resource|
model = Factory(factory)
resource.send(model.class.to_s.downcase.pluralize) << model
end
Похоже, есть способ использовать помощник devise 'current_user'.
Что это за хелпер. правильный способ доступа к пользователю, который вошел в систему?
Пожалуйста, дайте мне знать, если вам нужна дополнительная информация. Спасибо!
ОБНОВЛЕНИЕ 1: Я временно исправил свою проблему, создав новый шаг, который позволяет мне сделать:
Given I have already created a note that is owned by the user with email "test@email.com"
Но я не хочу указывать адрес электронной почты, я все равно хотел бы иметь возможность использовать зарегистрированного пользователя, если это возможно.
ОБНОВЛЕНИЕ 2: Добавлен general_steps.rb
Итак, вы можете видеть, что в моем «Фон» пользователь создается через Factory, а затем входит в систему через мой интерфейс. Я хочу получить доступ к модели зарегистрированного пользователя.