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
。该模型在保存后不知道它存储的是什么密码。
我在使用 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
。该模型在保存后不知道它存储的是什么密码。