Как мне отформатировать фон, чтобы он регистрировал и регистрировал пользователя, и я мог использовать его повторно? - PullRequest
0 голосов
/ 06 июня 2011

Я хочу создать фоновый шаг в функции огурца, поэтому я просто регистрирую нового пользователя и регистрирую пользователя, а затем я могу просто запустить свои scenerios для пользователей, которые вошли в систему.

Затем я хочу использовать это повторно для многих других функций и сценариев.

Любые советы?

Как мне это сказать?

Given I am a user who registers
And then logs in

Как это?

Ответы [ 3 ]

2 голосов
/ 06 июня 2011

Я обычно пишу это как ...

Given I am logged in as a "<RoleTitle>"

RoleTitle конечно может быть что-то еще.

Шаг будет выглядеть как

Given /^I am logged in as a "([^"]*)"$/ do |role|
  # either run actual steps to register
  # OR
  # use pickle/factories to setup user accounts, if
  # bypassing the registration forms are possible

  # Once created I will (try to) create a pickle reference
  find_model! %{user: "#{role}"}, {:id => User.last.id} # change approach if you need multiple users

  # then log the user in
end
0 голосов
/ 07 июня 2011

Если вам не важен адрес электронной почты или другой атрибут пользователя, выберите что-то вроде:

Given I am signed in

Если вам нужно установить некоторые из их данных, используйте Factory Girl и перейдите с помощьючто-то вроде:

Given the following user exists:
  | email             | name       |
  | mark@example.com  | Mark Twain |
And I sign in as "mark@example.com"

Информация об определениях шагов Factory Girl:

http://robots.thoughtbot.com/post/284805810/gimme-three-steps

Идеи для написания определений шагов аутентификации:

https://github.com/thoughtbot/clearance/blob/master/features/step_definitions/engine/clearance_steps.rb

0 голосов
/ 06 июня 2011

Важна ли фактическая регистрация для вашего теста?Или просто существование пользователя?

В наших тестах у нас есть:

When I am logged in as an administrator #or whatever type of user you want

, и на этом шаге будет создан администратор, если он еще не существует.

...