我想使用黄瓜与水豚来测试我的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>元件?我想出的最好的事情(但还没有测试)是手动点击元素上的点击事件.
一旦Facebook对话出现,Capybara是否可以访问它?怎么样?这是为了输入测试Facebook帐户的电子邮件地址和密码,并安装测试帐户的Facebook应用程序.
对于这个问题,一个人如何管理测试帐户? http://developers.facebook.com/docs/test_users/表示可以使用Graph API创建和删除测试用户,但API并不希望提供对测试帐户的电子邮件地址或密码的访问,这似乎无法用于测试此特定流程.
我相信我也是忽略其他重要的问题.我很好奇其他人如何攻击这个问题!
解决方法
我已经设法使用以下代码在rspec验收规范中工作:
https://gist.github.com/1084767
这使用mogli创建和销毁测试用户和capybara来编排浏览器测试.我相信你可以通过删除shared_context块和使用黄瓜之前/之后的钩子来获得它与黄瓜的工作,如:
Before '@fb_test_user' do @fb_user = create_test_user(installed: false) end After '@fb_test_user' do @fb_user.destroy end World(FacebookIntegrationHelpers)