2008-09-04 69 views
6

我有一段時間搞清楚如何使用來自Rails的響應對象登錄和註銷。標準的博客是好的,但我終於診斷出來了,我想在這裏記錄下來。如何測試Rails從控制檯登錄?

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 

注意,上述意味着你失敗的身份驗證請求後重定向,並且還關係到你在登錄後重定向。

爲確保您的燈具加載到您的測試環境DB(這通​​常發生耙測試)過程中,一定要執行以下命令:

rake db:fixtures:load RAILS_ENV=test 

(從帕特里克·裏奇) 默認網址將顯示爲「www.example.com」,因爲這默認主機在設定的ActionController :: Integration :: Session

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

它被設置在ActionPack的/ lib目錄/ action_controller/integration.rb#75

要改變它在集成測試,請執行下列操作:

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

回答

2

「www.example。 com'是在ActionController :: Integration :: Session中設置的默認主機。它設置在actionpack/lib/action_controller/i中ntegration.rb#75

您應該能夠通過執行以下操作來更改它在你的集成測試:

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