Доступ к текущему пользователю в функциях Cucumber - Devise

Примечание: я очень новичок в 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, а затем входит в систему через мой интерфейс. Я хочу получить доступ к модели зарегистрированного пользователя.

9
задан ardavis 16 June 2011 в 22:36
поделиться