我正在使用 Rails 的内置测试以及事件管理员。在我的大多数测试中(你需要在实际软件中登录的测试),我得到的错误不是执行测试应该做的任何事情,而是重定向到登录页面(因为作为测试你没有登录)。我如何才能在测试前以管理员用户身份登录,或者忽略登录进行测试的必要性?
需要说明的是,这是一项此类测试的结果:
Failure:
PaymentsControllerTest#test_should_get_new [/home/silvertail/Documents/rails/bridal/test/controllers/payments_controller_test.rb:16]:
Expected response to be a <2XX: success>, but was a <302: Found> redirect to <http://www.example.com/admin/login>
我正在寻找类似的东西:current_admin_user = admin_users(:one)
最佳答案
您必须以管理员用户身份登录到您的测试环境。你可以这样做:
test "should get new" do
user = users(:one)
# The user :one should be defined in your users.yml and flagged as admin
get login_path
post login_path, params: { session: { email: user.email,
password: user.password} }
assert_response :success
end
希望对您有所帮助。
关于ruby-on-rails - 使用事件管理员进行 Rails 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38383107/