所以,我有一个我正在测试的Facebook应用程序。我想在应用上测试用户的互动,我遇到了问题。
我正在测试的用户流程相对简单:当用户访问页内Facebook应用时,如果他们已经喜欢应用所在的页面,他们会看到x内容,如果他们没有但是喜欢这个页面,他们会遇到类似的门。我的目标是确认我的用户在看到Facebook页面后能够看到某些文本。
我的测试:
describe "facebook" do
it "visit and like page", :vcr do
Capybara.current_driver = :selenium
visit "https://www.facebook.com/pages/Testpage/433439410073990?id=433439410073990&sk=app_454512097948559"
within('#login_form') do
fill_in "email", with: FB_EMAIL
fill_in "pass", with: FB_PASSWORD
click_on "Log In"
end
page.should have_content('Testpage')
within('#timelineHeadlineLikeButton') do
click_on 'like'
end
end
end
我的问题是我无法弄清楚如何让capybara喜欢这个页面。
您如何集成测试Facebook应用程序?
答案 0 :(得分:0)
我没有完整的例子。
<强> test.rb 强> (您可以将其添加到初始化程序中,如果环境是测试则添加它。)
OmniAuth.config.test_mode = true
FACEBOOK_INFO = {
"id"=> "220449",
"email" => "nypee@facebook.com",
}
OmniAuth.config.mock_auth[:facebook] = {
"uid" => '112345',
"provider" => 'facebook',
"user_info" => {"name" => "Nype Aylor", "nickname" => 'Aylor'},
"credentials" => {"token" => 'plataformatec'},
"extra" => {"user_hash" => FACEBOOK_INFO}
}
这模拟了对omniauth的调用。 所以在你的测试中,当你模拟点击facebook按钮时, 您将得到的答案来自
OmniAuth.config.mock_auth[:facebook].
我认为将测试与Facebook集成的最佳方式