2016-08-31 13 views
0

私はminitest-railsを初めて使っています。テストログインminitest-railsで

現在、ログインコントローラのテストを行っています。

まず、私は私のユーザー器具に暗号化されたパスワードを設定する必要があります?ここ

admin: 
fullname: Administrator 
username: admin 
password_digest: $2a$10$RVjBGDtSlmOHCKvgUbqYCuBT1QFQ0NfU6b1WgwLOS3/PFDzwEG4bq 
status: true 
email: [email protected] 
role: admin 
last_updated_by: admin 

は私のLoginModuleのコードです:ここ

def authenticate_current_user(username, password) 
    User.find_by(username: username).try(:authenticate, password) 
end 

は私のログインコントローラ(POST方法を使用して)コードです:ここでは

def authenticate_login 
    user = authenticate_current_user(params[:username], params[:password]) 
    if user.status == true 
    session[:username] = user.username 
    session[:user_id] = user.id 
    session[:role] = user.role 

    flash.keep[:status] = "success" 
    redirect_to "/home", :notice => "Hi #{user.username.capitalize}! you have successfully logged in." 
    else 
    flash.keep[:status] = "error"   
    redirect_to "/login", :notice => "Invalid Username or Password!" 
    end 
end 

は私LoginControllerTestですのコード:

test "should authenticate_login" do 
    @user = users(:admin) 
    # I tried 
    post :authenticate_login, params: { username: @user.username, password: 'pwwadmin' } # Not working 

    # and also 
    post :authenticate_login, params: { session: {username: @user.username, password: 'pwwadmin'} } # Not working 

    assert_not_nil(@user) 
    assert_equal session[:username], @user.username 
    assert_equal flash[:status], 'success' 
    assert_response :success 
end 

結果:、常に他の句になります。私はパスワードに問題があるようですか?

else 
    flash.keep[:status] = "error"   
    redirect_to "/login", :notice => "Invalid Username or Password!" 
    end 

ログインテストを修正するのを手伝ってください。

答えて

1

フィクスチャにはpassword_digestは必要ありません。パスワードを使用してください(ユーザーにパスワードを2回入力する必要がある場合はpassword_confirm)。偽のログインをするには、@current_userをあなたの管理者のフィクスチャに設定してください。

foo_bar_test.rb:

def setup 
    @current_user = users(:admin) 
end 

... 

運のベスト!

+0

[The Lowdown on Fixtures](http://guides.rubyonrails.org/testing.html#the-low-down-on-fixtures)は意見が一致していないようです。私と一緒に熊、私もこれを考え出している。^_ ^盲人のように、ここでは盲目的になる。 –

+0

テストガイドを読んだ後、答えを更新しました。 –

関連する問題