Войдите через authlogic без необходимости каждый раз заполнять форму - PullRequest
7 голосов
/ 02 сентября 2010

У меня есть несколько сценариев Cucumber, которые выполняются с капибарой в проекте, над которым я работаю.

Большинство этих сценариев начинаются с шага «Учитывая, что я вошел в систему».В настоящее время моя реализация этого:

  visit path_to('the login page')
  fill_in('Username', :with => 'user')
  fill_in('Password', :with => 'password')
  click_button('Login')

Это работает нормально, однако это требует немного времени, чтобы загрузить и отправить форму входа перед каждым сценарием.

Есть лиспособ просто настроить сеанс на этом шаге без необходимости каждый раз проходить форму?

Ответы [ 3 ]

2 голосов
/ 28 октября 2011

Немного опоздал на шоу, как обычно, но это работает для меня на Rails 3.0.10.

В features/support/authlogic.rb:

require "authlogic/test_case"
World(Authlogic::TestCase)
ApplicationController.skip_before_filter :activate_authlogic
Before do
  activate_authlogic
end

Затем в features/step_definitions/user_sessions_steps.rb

Given /^I am already logged in$/ do
  UserSession.create!(User.find_by_name!('user'))
end

Очевидно, что вы можете передать имя пользователя в определение шага, если хотите войти в систему для конкретного пользователя.

Полная информация в этом сообщении в блоге: http://laserlemon.com/blog/2011/05/20/make-authlogic-and-cucumber-play-nice/

0 голосов
/ 16 июля 2014

Заимствуя уловку у другого автора. Волшебство вики: Интеграционное тестирование с Rspec, Capybara и Fabricator , они используют:

page.driver.post(user_sessions_url, { username: user, password: password })

Которые в основномвызывает метод user_sessions_controller#create, поэтому убедитесь, что аргументы совпадают.Так что для меня, я сделал:

activate_authlogic
page.driver.post(user_sessions_url, { user_session: { email: user.email, password: user.password } })

Я искал это в течение нескольких дней.и UserSession.create! не смог работать на меня.Хотя это старый вопрос, я на Rails 4, надеюсь, это поможет и другим.

0 голосов
/ 27 октября 2010

Вы можете использовать Фон в огурце .. то есть

Background:
    Given I am a logged-in admin user

, который высушит ваши сценарии.

http://github.com/aslakhellesoy/cucumber/wiki/background

...