我正在尝试测试一个用capybara创建模型的新实例的表单。问题是user_id由控制器在create方法中提供,而不是由以下形式提供:
@contractor = Contractor.new(contractor_params.merge({user_id: current_user.id}))
现在可以在我的Capybara测试中设置user_id,还是以控制器可以访问它的方式在我的测试中设置current_user变量?
答案 0 :(得分:1)
是的,在您的测试中,在前一个块中,使用创建的用户存根current_user
,如此(假设您正在使用FactoryGirl):
let(:user) { FactoryGirl.create(:user) }
before do
controller.stub(:current_user).and_return(user)
end
当您的控制器点击current_user
时,它将是您创建的user
。