When I encounter something like this, I usually just temporarily override the 
function/method that
actually sends the mail:

  my $email_text;
  my $mail_func = 'My::Mail::Module::send';
  {
    no warnings 'redefine';
    local *$mail_func = sub { $email_text = shift };
  }

  ok($email_text, "$mail_func should be called called");
  is($email_text, $test_text, '... and the email should match the sample text'); 

The above, of course, is probably not as complete as you might want for production 
code, but it's
roughly how I would approach the situation.

Cheers,
Ovid

--- Mark Stosberg <[EMAIL PROTECTED]> wrote:
> Hello,
> 
> I'm looking at writing a test for an e-mail that's generated by Perl.  
> I'm wondering about the best way to do this. Here are some possibilities
> I have considered:
> 
> - use Test::Mail. While it's designed for the task, I'm not fond of the
>   complexity of setting up an e-mail address which sends the input to
>   a test script, which generates a log file that someone eventually
>   sees.
> 
> - Test the message at the moment before it's sent. For this I thought
>   Test::AtRunTime might be a good choice. The output could be a 
>   sent to a logfile that some other test script output could remind
>   me to read...or perhaps even open for me. 
> 
> - ??
> 
> I'm curious to know what others are doing to address this that they have
> been satisfied with.
> 
> Thanks!
> 


=====
Silence is Evil            http://users.easystreet.com/ovid/philosophy/indexdecency.htm
Ovid                       http://www.perlmonks.org/index.pl?node_id=17000
Web Programming with Perl  http://users.easystreet.com/ovid/cgi_course/

__________________________________
Do you Yahoo!?
Exclusive Video Premiere - Britney Spears
http://launch.yahoo.com/promos/britneyspears/

Reply via email to