Как выполнить редирект после click_link / button с огурцом и капибарой в рельсах? - PullRequest
7 голосов
/ 23 июля 2010

В настоящее время я пытаюсь настроить интеграционное / приемочное тестирование для нового приложения rails 3 с огурцом и капибарой. (Первоначально я планировал использовать webrat, но, похоже, он не поддерживает рельсы 3, поэтому я выбрал капибару)

Я пытаюсь получить базовый тест для входа в систему:

Feature: Login user
  In order to access the non-public parts of the site,
  as a user,
  I want to login to the site

Scenario: login with valid credentials
  Given I am on the login page
  When I fill in "Email" with "bender@planetexpress.com"
  And I fill in "Password" with "pass"
  And I press "Login"
  Then I should be on the users home page
  And I should see "Login successful"

Проблема сейчас в том, что форма входа отправляет меня на /user_session, который затем перенаправляет меня на домашнюю страницу /home. Огурец не следует за редиректом, что приводит к сбою строки Then I should be on the users home page.

Как я могу сказать огурцу / капибаре следовать перенаправлению, чтобы после перехода по ссылке перейти на нужную страницу?

В драйвере rack_test, который я использую, есть follow_redirect! метод, который я использую, но он является закрытым, и я понятия не имею, как вызвать эту функцию.

спасибо заранее,
Simon

Ответы [ 3 ]

14 голосов
/ 25 июля 2010

Капибара автоматически следует за перенаправлениями. Что-то еще сломано.

6 голосов
/ 05 декабря 2010

Добавьте это к своим шагам:

When /^I dump.* the response$/ do
  puts body
end

Затем, когда ваши тесты не работают, вы можете добавить «И я дам ответ» к вашим шагам и посмотреть, куда они идут с перенаправлениями или что-то еще.

1 голос
/ 23 июля 2010

Что-то, что может сработать, это переключение порядка операторов:

Then I should see "Login successful"
And I should be on the users home page

Тогда проверка текущей страницы произойдет после проверки текста страницы. Тесты на огурец требуют много отладки, удачи!

...