什么是集成测试Facebook应用程序的最佳方式?

时间:2013-04-04 17:25:53

标签: ruby-on-rails-3 facebook tdd capybara

所以,我有一个我正在测试的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应用程序?

1 个答案:

答案 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集成的最佳方式