의 테스트 하였다 "목록 8.20 : 유효한 정보의 사용자 로깅을위한 테스트"레일 튜토리얼 - 오류 메시지 : 예상 응답은 <redirect> 수 있지만 <200>
FAIL["test_login_with_valid_information", UsersLoginTest, 1.051300315]
test_login_with_valid_information#UsersLoginTest (1.05s)
Expected response to be a <redirect>, but was <200>
test/integration/users_login_test.rb:22:in `block in <class:UsersLoginTest>'
나에게 영구적 인 오류 메시지를주고있다
테스트는 다음과 같습니다
19 test "login with valid information" do
20 get login_path
21 post login_path, session: { email: @user.email, password: 'password' }
22 assert_redirected_to @user
23 follow_redirect!
24 assert_template 'users/show'
25 ....
세션 컨트롤러는 I이 오류 메시지가
def create
user = User.find_by(email: params[:session][:email].downcase)
if user && user.authenticate(params[:session][:password])
log_in user
redirect_to user # What I want to happen
else
flash.now[:danger] = 'Invalid email/password combination'
render 'new' # What is happening
end
end
0123을 일으키는 상상하고있는 무슨이다
사용자가 인증되면, 그것은 다른 로그인 양식
렌더링 할 사용자 프로필 페이지 에 리디렉션해야합니다 그래서 내가 믿는 문제는 내 테스트 사용자가 인증되지 않는 것입니다. 사이트에 수동으로 로그인 할 때 응용 프로그램 로그인 및 리디렉션 기능이 제대로 작동합니다.
시험/비품/users.yml이 암호 '암호'
password_digest: <%= User.digest('password') %>
이 암호 '암호'
def User.digest(string)
cost = ActiveModel::SecurePassword.min_cost ? BCrypt::Engine::MIN_COST :
BCrypt::Engine.cost
BCrypt::Password.create(string, cost: cost)
end
소화하는 사용자 모델을 통과해야 문제가 거짓말인가요? 그리고이 테스트가 실패한 이유를 보여주는 또 다른 테스트를 어떻게 만들 수 있습니까?