2008-09-04 25 views
6

Rails'in yanıt nesnelerini kullanarak nasıl giriş yapılacağını ve çıkış yapılacağını anlatan bir zaman geçiriyordum. Standart bloglar iyiydi, ama sonunda teşhis ettim ve burada kaydetmek istedim.Konsoldan Giriş Yapan Rayları Nasıl Sınar?

app.get '/' 
assert_response :success 
app.get '/auth_only_url' 
assert_response 302 
user = User.find(:user_to_login) 
app.post '/signin_url', 
       :user_email => user.email, 
       :user_password => '<password in clear>' 
assert_response 302 
app.follow_redirect! 
assert_response :success 
app.get '/auth_only_url' 
assert_response :success 

Not Yukarıda başarısız bir yetkilendirme isteği sonra yönlendirme yaptığını ve ayrıca giriş yaptıktan sonra yönlendirme anlamına gelir.

normalde oluştuğu (test ortamına DB içine demirbaşlar yüklemek sağlamak ActionController ayarlanan bu varsayılan ana bilgisayar olarak,

rake db:fixtures:load RAILS_ENV=test 

(Patrick Richie itibaren) varsayılan URL 'www.example.com' gibi görünecektir ::: tırmık testi) sırasında, aşağıdakilerden emin yürütmek yapmak Entegrasyon :: Oturum

ActionController::Integration::Session.new.host=> "www.example.com" 

O/lib/action_controller/# 75

aşağıdakileri yapın, entegrasyon testi bunu değiştirmek için integration.rb actionpack ayarlanır:

session = open_session do |s| s.host = 'my-example-host.com' end 

cevap

2

'www.örnek. Bu actionpack ayarlanır

>> ActionController::Integration::Session.new.host 
=> "www.example.com" 

ActionController :: Entegrasyon :: Oturumda belirtilen com' varsayılan ev sahibi/lib/action_controller/i ntegration.rb Aşağıdaki yaparak bütünleşme testinde bunu değiştirmek mümkün olmalıdır # 75

:

session = open_session do |s| 
    s.host = 'my-example-host.com' 
end 
İlgili konular