ruby-on-rails - 使用事件管理员进行 Rails 测试

标签 ruby-on-rails ruby testing activeadmin

我正在使用 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/

相关文章:

ruby-on-rails - 突然无法推送到 heroku : "unable to negotiate key exchange method"

ruby-on-rails - 使用带 Selenium 的 Capybara,我将如何单击表格行?

ruby-on-rails - 使用 Ruby On Rails 生成 URL (url_for)

go - 为什么这个测试使用 reflect.deepEqual 会失败?

ruby-on-rails - 在 ruby​​ on rails 中,通过 Controller 创建操作将当前用户 ID 保存到数据库是一个错误的选择吗?

ruby-on-rails - Rails 3. 按关联模型排序

ruby-on-rails - 如何将 Rails session cookie 过期时间设置为 "session"

ruby - 如何在 Ruby 中将 True Type 字体转换为位图?

java - SONAR 中的传入耦合

macos - 为 UI 测试模拟低带宽?