ruby-on-rails - 如何使用 Omniauth + capybara 测试 FB Connect?

标签 ruby-on-rails ruby-on-rails-3 devise capybara omniauth

我有一个 Rails 3 应用程序 + 设计,使用 capybara 进行集成测试。现在我已经进行了签名和注册测试,但还没有 FB Connect 测试。

如何添加 Omniauth 测试以确保注册和登录工作?任何人都有一个示例或最新的教程来展示这是如何完成的?我所能找到的只是信息片段。

谢谢

最佳答案

我没有完整的例子。我将以下内容添加到我的 test.rb 中(您可以将其添加到初始值设定项中,如果环境是测试,则添加它)。

  OmniAuth.config.test_mode = true

  FACEBOOK_INFO = {
    "id"=> "220439",
    "email" => "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="95f7e7f0e1d5f3f4f6f0f7fafafebbf6faf8" rel="noreferrer noopener nofollow">[email protected]</a>",
  }

  OmniAuth.config.mock_auth[:facebook] = {
    "uid" => '12345',
    "provider" => 'facebook',
    "user_info" => {"name" => "Bret Taylor", "nickname" => 'btaylor'},
    "credentials" => {"token" => 'plataformatec'},
    "extra" => {"user_hash" => FACEBOOK_INFO}
  }

这模拟了对omniauth的调用。因此,在您的测试中,当您模拟单击 facebook 按钮时,您将得到的响应是来自 OmniAuth.config.mock_auth[:facebook] 的响应。

关于ruby-on-rails - 如何使用 Omniauth + capybara 测试 FB Connect?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7248394/

相关文章:

ruby-on-rails - 如何在模型中设置设计配置值

ruby-on-rails - 将 POST 提交的一组项目解析并保存为单独的单独项目

ruby - 在 ubuntu 服务器上使用 RubyGems

ruby - 如何检查模型在 Rails 中是否有现有的模型关联?

ruby-on-rails - 在 Heroku cedar 错误上部署 ruby​​ on Rails

ruby - 通过 ruby​​ 脚本设计身份验证

ruby-on-rails - 分组时选择最大值的记录

ruby-on-rails - 工厂女孩多重嵌套属性

ruby-on-rails - 什么确定 rails 是否包含 id : :serial in a table definition?

ruby-on-rails - 如何使用 Devise Token Auth 通过 API 更改密码? rails 5