2012-02-12 54 views
1

好的,我做了一個登錄操作,但我對如何設置功能或單元測試有點困惑。會不會像從我的燈具發送用戶名和密碼,並檢查會話[:user_id]是否爲零?如何在Rails中爲此設置功能測試?

感謝提前:)

#POST /sessions 
    def create 
    user = User.authenticate(params[:email],params[:password]) 
    if user 
     session[:user_id] = user.id 
     redirect_to root_path, :notice => "Logged in successfully!" 
    else 
     flash.now.alert = "Invalid username/password" 
     render "new" 
    end 
    end 

回答

2

邏輯上,有幾個測試,你可以做:

  1. 發送無效的電子郵件(對於您尚未創建的用戶)。您可以檢查閃光燈,並且您可以檢查是否呈現了新照片。
  2. 發送無效密碼(對於您創建的用戶)。檢查閃存,並且已經渲染了新的內容。
  3. 發送有效的電子郵件/密碼組合(對於已呈現的用戶)。檢查您是否已被正確重定向,並且user_id存在於會話變量中。

假設您正在使用標準的rails測試框架,這將放在您的會話控制器的功能測試下。你會測試重定向,並通過做這樣的事情呈現:

assert_template "new" 

assert_redirected_to root_path 

此處瞭解詳情(特別是有關可你已經做了後門柱的哈希值):

http://guides.rubyonrails.org/testing.html#functional-tests-for-your-controllers

相關問題