I'm using restful_authentication in my app and I have the before filters in my application rhtml:<br><br>before_filter :login_required<br>around_filter :set_timezone<br>around_filter :catch_errors<br><br>Currently I have them commented out while rspec'in but I'll need to add them in my specs.
<br><br><br> def create<br> @ticket = Ticket.new(params[:ticket])<br> @ticket.user = current_user<br> if @ticket.save<br> redirect_to tickets_path<br> else<br> render new_ticket_path(params[:user_id])
<br> end<br> end<br><br>describe TicketsController, "handling POST /tickets" do<br> before do<br> @ticket = mock_model(Ticket, :save => true)<br> @current_user = mock_model(User)<br> @params = {}
<br> end<br> def do_post<br> post :create, :ticket => @params<br> end<br> it "should create a new ticket and assign current user as ticket's user" do<br> @ticket.should_receive(:new).with(@params).and_return(@ticket)
<br> assigns[:ticket].user.should equal(@current_user)<br> do_post<br> end<br>end<br><br>1)<br>NoMethodError in 'TicketsController handling POST /tickets should create a new ticket and assign current user as ticket's user'
<br>You have a nil object when you didn't expect it!<br>You might have expected an instance of Array.<br>The error occurred while evaluating nil.include?<br>/Volumes/EXTERNAL/web/yellowticket/vendor/plugins/rspec_on_rails/lib/spec/rails/dsl/assigns_hash_proxy.rb:10:in `[]'
<br>./spec/controllers/tickets_controller_spec.rb:14:<br><br><br>My guess is that I'm not allow to do this: assigns[:ticket].user<br>How do I apple the assignment with current_user?<br>