0

我有一些问题使用minitest测试基本设计登录。rails设计使用灯具测试问题(未授权访问)

我的测试:

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。该模型不知道它保存后存储的密码。