Ruby on rails 3 集成测试facebook应用程序的最佳方法是什么?

Ruby on rails 3 集成测试facebook应用程序的最佳方法是什么?,ruby-on-rails-3,facebook,tdd,capybara,Ruby On Rails 3,Facebook,Tdd,Capybara,所以,我有一个facebook应用程序,我正在测试。我想在应用程序上测试用户的交互,但我遇到了一个问题 我正在测试的用户流相对简单:当用户访问页面内的facebook应用程序时,如果他们已经喜欢该应用程序所在的页面,他们将看到x-content,如果他们还不喜欢该页面,他们将遇到一个类似的门。我的目标是确认我的用户一旦喜欢上facebook页面,就能够看到某些文本 我的测试: describe "facebook" do it "visit and like page", :vcr do

所以,我有一个facebook应用程序,我正在测试。我想在应用程序上测试用户的交互,但我遇到了一个问题

我正在测试的用户流相对简单:当用户访问页面内的facebook应用程序时,如果他们已经喜欢该应用程序所在的页面,他们将看到x-content,如果他们还不喜欢该页面,他们将遇到一个类似的门。我的目标是确认我的用户一旦喜欢上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
我的问题是我不知道如何让水豚喜欢这个页面


您如何集成测试您的facebook应用程序?

我没有完整的示例

测试.rb (您可以将其添加到初始值设定项中,如果环境为test,则可以将其添加)

这模拟了对omniauth的调用。 所以在你的测试中,当你模拟点击facebook按钮时, 您将得到的响应是来自

OmniAuth.config.mock\u auth[:facebook]。

我认为这是将测试与Facebook整合的最佳方式

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}
  }