如何使用Omniauth + capybara测试FB Connect?

时间:2011-08-30 19:02:47

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

我有一个rails 3 app + devise使用capybara进行集成测试。现在我已签名并注册测试工作,但没有测试FB Connect。

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

由于

1 个答案:

答案 0 :(得分:4)

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

  OmniAuth.config.test_mode = true

  FACEBOOK_INFO = {
    "id"=> "220439",
    "email" => "bret@facebook.com",
  }

  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]。