TypeError while doing tests

I have a problem testing an invalid situation, the valid situation
without merging params (or merging valid ones) works fine.

Controller:
# @user is setted with a filter

  def update
    if @user.update_attributes(params[:user])
      redirect_to(user_path(@user))
    else
      render :action => :show
    end
  end

Test:

  def test_should_not_update_user
    # Set session values
    session_company :one
    login_as :emilio
    # I choose a name that invalid (is too short)
    update_user(:name => 's')
    assert !users(:emilio).errors.empty?,
users(:emilio).errors.full_messages
    assert_response :success
  end

protected
  def update_user(options = {})
    put :update, :user => { :name => 'Testing name', :street => 'test street',
                               :city => 'Testing City', :zipcode => '556678',
                               :state => 'Testing State', :country =>
'Argentina',
                               :password_actual => 'test',
                               :password => 'testing',
:password_confirmation => 'testing' }.merge(options)
  end

Test Output:
Started
E...
Finished in 0.214897 seconds.

  1) Error:
test_should_not_update_user(UsersControllerTest):
TypeError: can't convert nil into String

.....

Why i get an error on invalid name if the controller just render the
same page passing user errors...

Thanks in advance!