Неправильные получатели электронной почты в функциональном тесте

Функциональная проверка процесса, который отправляет электронное письмо с двумя получателями (один To:, один Cc :), неправильно запрашивает одного и того же получателя как To: и Cc.

В среде разработчиков процесс, указанный в приведенном ниже тесте, отправляет электронное письмо по адресу [email protected] с Cc по адресу [email protected]. (Выполнение процесса в режиме тестовой отладки подтверждает правильность получателей.) Однако приведенный ниже тест не пройден. Замена получателя To: на [email protected] позволяет успешно пройти тест.

консольный вывод

Выход с print_r($recipient); в почтовом процессе во время теста.

PHPUnit 4.3.5 by Sebastian Bergmann.

Configuration read from G:\Documents\workspace\volunteer\app\phpunit.xml.dist

FArray
(
[0] => [email protected]
)Time: 4.5 seconds, Memory: 26.25Mb

There was 1 failure:

1) Truckee\MatchingBundle\Tests\Controller\AdminMailerTest::testActivateOrganizationEmail
Failed asserting that two strings are equal.
--- Expected
+++ Actual
@@ @@
-'[email protected]'
+'[email protected]'

config_test.yml

swiftmailer:
logging: true

config_dev.yml

swiftmailer:
#    disable_delivery:  true
#    delivery_address: [email protected]

тестовое задание

public function testActivateOrganizationEmail()
{
$crawler = $this->login('admin');
$this->client->followRedirects(false);
$link = $crawler->selectLink('Accept organization')->link();
$crawler = $this->client->click($link);
$mailCollector = $this->client->getProfile()->getCollector('swiftmailer');
$this->assertEquals(1, $mailCollector->getMessageCount());

$collectedMessages = $mailCollector->getMessages();
$message = $collectedMessages[0];

$this->assertEquals('[email protected]', key($message->getTo()));
$this->assertEquals('[email protected]', key($message->getCc()));
}

Редактировать — процесс.

В этом случае есть единственный элемент [email protected] в $to и один элемент [email protected] в $this->adminRecipients,

public function activateOrgMail($organization, $to)
{
$recipient = [];
foreach ($to as $user) {
$recipient[] = $this->getAddressee($user);
}
$cc = $this->adminRecipients();
if (!empty($recipient)) {
$message = \Swift_Message::newInstance()
->setSubject('Organization now active')
->setFrom($this->parameters['address'])
->setTo($recipient[0])
->setCc($cc)
->setContentType('text/html')
->setBody(
$this->twig->render(
'activated_org', array(
'organization' => $organization,
'recipient' => $recipient,
), 'text/html'
)
)
;

return $this->mailer->send($message);
}
else {
return 0;
}
}

private function adminRecipients()
{
$em = $this->em;
$admins = $em->getRepository("TruckeeMatchingBundle:Admin")->findBy(['locked' => false]);
$adminEmail = [];
foreach ($admins as $admin) {
$email = $admin->getEmail();
$adminEmail[] = $email;
}

return $adminEmail;
}

0

Решение

ARRRGGHHH! Это самая популярная проблема с неочищенным кешем. В этом случае, однако, необходимо очистить тестовый кеш! После очистки тесты завершаются успешно, как и ожидалось.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]