我有一个rails 3 app + devise使用capybara进行集成测试。现在我已签名并注册测试工作,但没有测试FB Connect。
如何添加Omniauth测试以确保注册和登录工作?任何人都有一个示例或最新的教程,说明如何做到这一点?我所能找到的只是信息碎片。
由于
答案 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]。