I have a Rails 3 project in which I want to store the current company selected in a session variable.
I’m working with the staff controller spec and would like to stub out current_company for now as I’m isolating my spec example for the staff new controller action.
it "should call current_company" do
company = mock_model(Company, :id => "1")
controller.should_receive(:current_company).and_return(company)
get :new
end
Here is my new action for the staff controller
def new
@staff = Staff.new
@staff.company_id = current_company.id
end
I keep getting error
Failure/Error: get :new
NameError:
undefined local variable or method `current_company' for #<StaffsController:0x000000028d6ad8>
I’ve also tried just stubbing it out instead of using should_receive
controller.stub!(:current_company).and_return(company)
I get the same error.
I think it was bombing out on the ‘should be successful’ example/test, so I’ve put my stubbing in a before block.
This works for: