0

У меня есть некоторые проблемы с тестированием основного входа в систему с использованием minitest.рельсы разрабатывают проблему тестирования с использованием приспособления (несанкционированный доступ)

Мой тест:

test "user can sign in" do 
    @user = users(:someoneelse) 
    get new_user_session_path 
    assert_select "strong", "log in" 
    post user_session_path, user: { email:  @user.email, 
            password: @user.password, 
            } 
    assert_redirected_to root_path 
    end 

Светильник

someoneelse: 
    email: [email protected] 
    encrypted_password: <%= Devise::Encryptor.digest(User, 'password') %> 
    created_at: <%= Time.zone.now %> 

Результаты испытаний:

test_user_can_sign_in#UserFlowTest (0.81s) 
     Expected response to be a <3XX: redirect>, but was a <200: OK> 
     test/integration/user_flow_test.rb:17:in `block in <class:UserFlowTest>' 

Бревно хвост

Started POST "https://stackoverflow.com/users/sign_in" for 127.0.0.1 at 2017-02-19 14:06:28 -0600 
Processing by Devise::SessionsController#create as HTML 
    Parameters: {"user"=>{"email"=>"[email protected]", "password"=>"[FILTERED]"}} 
Completed **401 Unauthorized in 1ms** (ActiveRecord: 0.0ms) 
Processing by Devise::SessionsController#new as HTML 

По-видимому, пользователь несанкционирован. Что-то не так с прибором?

Также как я могу получить minitest, чтобы быть более подробным?

Спасибо.

ответ

1

Используйте 'password' в своем тесте вместо @user.password. Модель не знает, какой пароль она хранит после ее сохранения.