5/05/2014

Do you Remember Me?



   Порой приходится написать автотесты на Cucumber'e, для проверки такой маленькой фичи, как "Remember me". На первый взгляд кажется, что это всего лишь безобидный чекбокс, который необходимо выбрать при логине. Но когда вы подумаете о том, как этот чекбокс должен сработать, появятся вопросы... И простым check("Remember me") вы не обойдетесь.



   Суть фичи заключается в том, что когда при логине вы ставите галочку "Remember me" после закрытия браузера и повторном его открытии, вам не придется вводить заново логин и пароль. Иными словами, в куки записывается информация о том, что вы тут были.
   Таким образом, нам в тесте необходимо закрыть наш браузер и заново его открыть!
   Тут к нам на помощь приходит маленький, но весьма полезный гем - "show me the cookies".
   Устанавливается он добавлением в ваш Gemfile строки gem 'show_me_the_cookies' и строки World(ShowMeTheCookies) в env.rb
   Далее наш файл feature будет выглядеть следующий образом:
Scenario: Remembering users so they don't have to log in again for a while
  Given I go to the dashboard
  And   I log in with the Remember Me option checked
  Then  I should see "Welcome"
  When  I close my browser (clearing the session)
  And   I return to the dashboard url
  Then  I should see "Welcome"

steps_definitions будут следующими:
Given /^I close my browser \(clearing the session\)$/ do
  expire_cookies
end

   Более детально с гемом можно ознакомиться по его месту жительства
   Можно найти массу вариантов для применения данного гема. К примеру выполнить проверку локали, которая была изменена вручную. Но это уже совсем другая история... :-)

3 комментария: