如何使用PHPUnit测试mail()

ts.*_*ts. 6 php email testing phpunit unit-testing

如果正确发送邮件,有没有办法用PHPUnit(或者可能是PHP的其他测试框架)进行测试?我必须测试使用PHP函数mail()的代码.使用自定义邮件程序类我可以随时进行模拟,但对于mail()...?也许有一些插件能够使用IMAP并验证是否收到邮件?(如果有可能,它应该与操作系统无关......)

Art*_*cto 6

这里的解决方案是将邮件包装在可以模拟的类中,然后使用它.

我没有看到测试mail()本身的重点,我确信它已经经过了彻底的测试.


Sar*_*raz -5

有没有办法用 PHPUnit(或者其他 PHP 测试框架)测试邮件是否正确发送?

如果你想检查邮件是否发送成功,你不需要 phpunit,你只需:

mail(.....) or die('Could not send the email !!');
Run Code Online (Sandbox Code Playgroud)

或者

if (!mail(......)){
  echo 'Could not send the email !!';
}
Run Code Online (Sandbox Code Playgroud)

请注意,这告诉您邮件是否已发送,而不是电子邮件的发送者是否收到。所以这里应该提供更好的术语。