首页 > 解决方案 > 在功能测试中返回 Symfony Mailer 电子邮件的正文?

问题描述

使用 Mailer,似乎无法在功能测试中检索电子邮件的正文。例如,与

$email = $this->getMailerMessage(0);
$body = $email->getBody();
var_dump($body);

$body被揭示为

对象(Symfony\Component\Mime\Part\Multipart\AlternativePart)...

该对象没有(明显的)可访问属性。有什么方法可以在功能测试中访问使用 Symfony Mailer 发送的电子邮件正文的文本?

使用 SwiftMailer,您可以在功能测试中检索电子邮件正文:

$mailCollector = $this->client->getProfile()->getCollector('swiftmailer');
$collectedMessages = $mailCollector->getMessages();
$message = $collectedMessages[0];
$body = $message->getBody();

标签: symfonysymfony-mailer

解决方案


找了好久才找到这个。回溯到然后assertEmailHeaderSame找到了。assertEmailHtmlBodyContainsclass EmailHtmlBodyContains$message->getHtmlBody()

所以现在我的测试包括$body = $email->getHtmlBody();,这是一个字符串。哪个可以解析。


推荐阅读