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