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
ログインテストを修正するのを手伝ってください。
[The Lowdown on Fixtures](http://guides.rubyonrails.org/testing.html#the-low-down-on-fixtures)は意見が一致していないようです。私と一緒に熊、私もこれを考え出している。^_ ^盲人のように、ここでは盲目的になる。 –
テストガイドを読んだ後、答えを更新しました。 –