Я использовал насмешку в своих тестах. Я проверил вручную, выяснил, какими должны быть ответы, и переопределил рубиновый камень oAuth. Вот один тестовый пример (с использованием musta) для успешного твита:
context 'cork/tweet' do
setup do
response = Net::HTTPResponse.new("1.1", 200, "")
Net::HTTPResponse.any_instance.stubs(:body).returns JSON_RESPONSE
OAuth::AccessToken.any_instance.stubs(:post).returns(response)
post :create, :cork_id => @cork.id, :message=>MESSAGE
end
should_respond_with :redirect
should_change('Tweet.count' , :by => 1) {Tweet.count}
.. and so on
JSON_RESPONSE - это ответ, который я собрал из своих ручных тестов - я поместил printf в lib / oauth / tokens / access_token.rb: 44: в `post 'для захвата ответа.
В противном случае это практически невозможно протестировать, поскольку, как вы указали, Twitter не может деавторизовать ваше приложение из API и действует иначе, если вы уже авторизовали приложение.