Testing errors on a mailer

I have the following action written:

  # POST /designers.xml;contact
  def contact
    begin
      DesignerMailer.deliver_contact(params)
    rescue Exception => e
      logger.error("Email from #{params[:fromEmail]} to
#{params[:toEmail]} errored with: #{e}")
      respond_to do |format|
        format.xml { render :xml => e.to_xml }
      end
    else
      respond_to do |format|
        format.xml { head :ok }
      end
    end
  end

As you can see, I follow a different path if there are errors in email
delivery. My question?

How do I force that exception in a functional test? A simple mock is
not sufficient since I only want the exception to occur in one of my
tests. I've looked at the following code, but I'm not sure it fits
what I need to do:

http://snippets.dzone.com/posts/show/1872
http://project.ioni.st/post/692#post-692

Thanks in advance!

You could use Mocha (http://mocha.rubyforge.org) to do something like
the following...

def test_what_happens_when_exception_raised
  DesignerMailer.stubs(:deliver_contact).raises(Exception)
  # post :contact
  # assertions
end

def test_what_happens_when_no_exception_raised
  DesignerMailer.stubs(:deliver_contact)
  get :contact
  # post :contact
  # assertions
end