Я бы хотел использовать Cucumber с Capybara, чтобы протестировать процедуру регистрации моего приложения Rails на Facebook, выполнив следующий сценарий:
@javascript
Scenario: Connect account
When I go to the home page
And I press "Connect your Facebook account"
And I fill in "test@address" for "Email"
And I fill in "test" for "Password"
And I press "Login"
And I press "Allow"
Then I should be on the dashboard page
Как люди подходят к проблеме интеграционного тестирования интеграции с Facebook на основе браузера? Поисковый запрос в Интернете выявляет только пару постов в блоге, которые предшествуют API графа, и они, похоже, обсуждают лишь реализацию предварительного условия, которое устанавливает среду, представляющую пользователя, уже вошедшего в Facebook.
Некоторые конкретные вопросы для решения:
Как имитировать нажатие на элемент <fb:login-button>
? Лучшее, что я придумал (но еще не протестировал), - это вручную запустить событие click для элемента.
Как только появляется диалоговое окно Facebook, имеет ли Capybara доступ к нему? Как? Это необходимо для ввода адреса электронной почты и пароля тестовой учетной записи Facebook и установки приложения Facebook для тестовой учетной записи.
Кстати, как управлять тестовыми аккаунтами? http://developers.facebook.com/docs/test_users/ указывает, что тестовых пользователей можно создавать и удалять с помощью Graph API, но API не стремится предоставить доступ к адресу электронной почты или паролю для тестовой учетной записи, что делает их бесполезными для тестирования этот конкретный поток.
Я уверен, что пропускаю и другие важные вопросы. Мне действительно любопытно, как другие люди напали на эту проблему!