Тестирование Rspec для провайдера oauth - PullRequest
5 голосов
/ 11 марта 2011

Я пишу API, который также является поставщиком OAuth.Есть ли рекомендуемый способ написания ваших тестов rspec?

После того как вы включите oauth для защиты всех ваших конечных точек, как вы будете писать тесты rspec, которые пройдут этап аутентификации?

1 Ответ

6 голосов
/ 22 марта 2011

Если вы используете гемы oauth и oauth-plugin, этот пост может вам помочь: http://peachshake.com/2010/11/11/oauth-capybara-rspec-headers-and-a-lot-of-pain/


Тем не менее, гем oauth-plugin генерирует некоторые спецификации, которые включают помощника, который поможет вам симулировать процесс аутентификации.

Посмотрите на этот файл: https://github.com/pelle/oauth-plugin/blob/v0.4.0.pre4/lib/generators/rspec/templates/controller_spec_helper.rb

Вы можете использовать следующие методы для подписания ваших запросов:

def sign_request_with_oauth(token=nil,options={})
  ActionController::TestRequest.use_oauth=true
  @request.configure_oauth(current_consumer,token,options)
end

def two_legged_sign_request_with_oauth(consumer=nil,options={})
  ActionController::TestRequest.use_oauth=true
  @request.configure_oauth(consumer,nil,options)
end

def add_oauth2_token_header(token,options={})
  request.env['HTTP_AUTHORIZATION'] = "OAuth #{token.token}"
end

Я предлагаю вам скопировать этот файл в качестве помощника для ваших спецификаций и изменить в соответствии с вашими потребностями.

...