【问题标题】:How to stub current_user in Rails 5?如何在 Rails 5 中存根 current_user?
【发布时间】:2017-03-25 22:06:08
【问题描述】:

如何在 Rails 5 中存根 current_user

我预料到了:

@controller.stub :current_user, mock_user do

end

工作,但ActionDispatch::IntegrationTest 中没有@controller?我使用sorcery gem 进行身份验证。

【问题讨论】:

  • 什么是current_user?它是一个变量吗?一个方法?你用设计吗?
  • 这是一个控制器上的方法。我使用巫术。我会提出问题,我觉得它并不重要,因为大多数 auth gem 都定义了它。
  • 你能告诉我们块的内部和你得到的任何错误/失败的输出吗?
  • 块内的 @Glyoko 是不相关的,而且很可能只是yield。错误是,正如我所写,IntegrationTest 中不存在实例变量 @controller(控制器测试在 Rails 5 中有所改变)。

标签: ruby-on-rails ruby ruby-on-rails-5 minitest sorcery


【解决方案1】:

你可以试试wiki example:

class TeamsControllerTest < ActionController::TestCase
  include Sorcery::TestHelpers::Rails::Integration
  include Sorcery::TestHelpers::Rails::Controller

  setup do
    @team = teams(:one)
    @user = users(:one)

    login_user(user = @user, route = login_url)  # replace with your login url path
  end

  test "should get index" do
    get :index
    assert_response :success
    assert_not_nil assigns(:teams)
  end

这会将您的测试用户设置为current_user

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-16
    • 2017-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多