我有以下代码
@user = FactoryGirl.create(:admin)
post :create, company: attributes_for(:company)
expect Company.count.should == 1
我无法执行帖子,因为我已经在所有控制器上验证了用户方法,如何在该操作之前登录用户,我正在使用设计。
答案 0 :(得分:1)
您可以将以下内容添加到spec / rails_helper.rb中:
require 'devise'
RSpec.configure do |config|
config.include Devise::TestHelpers, :type => :controller
end
并在测试之前使用sign_in
方法,例如sign_in @user
答案 1 :(得分:1)
你可以存根current_user。创建@user后,您可以这样做:
before(:each) do
allow_any_instance_of(ApplicationController).
to receive(:current_user).and_return(@user)
end
希望这有效吗?