rails 使用夹具设计测试问题(未经授权的访问)

rails devise testing issue using a fixture (unauthorized access)

我在使用 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: someoneelse@whatever.com
  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 "/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"=>"someoneelse@whatever.com", "password"=>"[FILTERED]"}}
Completed **401 Unauthorized in 1ms** (ActiveRecord: 0.0ms)
Processing by Devise::SessionsController#new as HTML

看来该用户未经授权。灯具有问题吗?

我怎样才能让 minitest 更详细?

谢谢。

在测试中使用 'password' 而不是 @user.password。该模型在保存后不知道它存储的是什么密码。