Hi everyone,

I'm trying to write integration tests for my sample twitter app and
I'm having trouble mocking out objects in the Twitter namespace.
Here's the function that's giving me trouble:

  def build_twitter(omniauth)
    Twitter.configure do |config|
      config.consumer_key = TWITTER_KEY
      config.consumer_secret = TWITTER_SECRET
      config.oauth_token = omniauth['credentials']['token']
      config.oauth_token_secret = omniauth['credentials']['secret']
    end
    client = Twitter::Client.new
    user = client.current_user
    self.name = user.name
  end

and here's the test:

feature 'testing oauth' do
  before(:each) do
    @twitter = double("Twitter")
    @twitter.stub!(:configure).and_return true
    @client = double("Twitter::Client")
    @client.stub!(:current_user).and_return(@user)
    @user = double("Twitter::User")
    @user.stub!(:name).and_return("Tester")
  end

  scenario 'twitter' do

    visit root_path
    login_with_oauth

    page.should have_content("Pages#home")
  end
end

But, I'm getting this error:
Failures:

  1) testing oauth twitter
     Failure/Error: login_with_oauth
     Twitter::Error::Unauthorized:
       GET https://api.twitter.com/1/account/verify_credentials.json:
401: Invalid / expired Token
     # ./app/models/user.rb:40:in `build_twitter'
     # ./app/models/user.rb:16:in `build_authentication'
     # ./app/controllers/authentications_controller.rb:47:in `create'
     # ./spec/support/integration_spec_helper.rb:3:in
`login_with_oauth'
     # ./spec/integration/twit_test.rb:16:in `block (2 levels) in <top
(required)>'

Any ideas on how to make this work? I'm using rspec for mocking the
objects but I'm open to mocha if that's a better choice.

Thanks,
Andrew

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to