我有一个 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/