2011-03-11 15 views
5

Ayrıca bir OAuth sağlayıcısı olan bir API yazıyorum. Rspec testlerinizi yazmak için önerilen herhangi bir yol var mı?Oeuth sağlayıcısı için Rspec testi

Tüm uç noktalarınızı korumak için etkinleştirdikten sonra, kimlik doğrulama adımını geçecek rspec testleri nasıl yazılır?

cevap

6

Eğer oauth ve oauth-eklentisi taşlar kullanıyorsanız, bu yazı size yardımcı olabilir: http://peachshake.com/2010/11/11/oauth-capybara-rspec-headers-and-a-lot-of-pain/

Oysa

, oauth-eklentisi taş simüle yardımcı olmak için bir yardımcıya dahil bazı özellikleri üretir kimlik doğrulama süreci.

bu dosya bir göz atın: isteklerinizi imzalamak için https://github.com/pelle/oauth-plugin/blob/v0.4.0.pre4/lib/generators/rspec/templates/controller_spec_helper.rb

Aşağıdaki yöntemleri kullanabilirsiniz:

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 

sana senin gözlük için bir yardımcı olarak bu dosyayı kopyalamak ve değiştirmek için önermek ihtiyaçlarınıza göre.