如何使用Capybara Rails 4访问控制器提供的参数

时间:2015-03-19 22:33:15

标签: ruby-on-rails ruby-on-rails-4 capybara

我正在尝试测试一个用capybara创建模型的新实例的表单。问题是user_id由控制器在create方法中提供,而不是由以下形式提供:

@contractor = Contractor.new(contractor_params.merge({user_id:  current_user.id}))

现在可以在我的Capybara测试中设置user_id,还是以控制器可以访问它的方式在我的测试中设置current_user变量?

1 个答案:

答案 0 :(得分:1)

是的,在您的测试中,在前一个块中,使用创建的用户存根current_user,如此(假设您正在使用FactoryGirl):

let(:user) { FactoryGirl.create(:user) }

before do 
  controller.stub(:current_user).and_return(user)
end

当您的控制器点击current_user时,它将是您创建的user