Метод getAcknowledged класса InMemoryTransport
Метод getAcknowledged принадлежит классу InMemoryTransport и используется в тестах для получения списка сообщений, которые были успешно отправлены и подтверждены (acknowledged) транспортом. Метод не принимает параметров и возвращает массив объектов сообщений. Его удобно применять совместно с getSent и getRejected для полной проверки работы очереди сообщений в функциональных тестах.
Синтаксис
public function getAcknowledged(): array
Пример
Давайте создадим тест, в котором отправим сообщение через InMemoryTransport и проверим список подтверждённых сообщений:
<?php
namespace AppTests;
use PHPUnitFrameworkTestCase;
use SymfonyComponentMessengerTransportInMemoryTransport;
use SymfonyComponentMessengerEnvelope;
class TransportTest extends TestCase
{
public function testAcknowledged(): void
{
$transport = new InMemoryTransport();
$message = new Envelope(new AppMessage('abcde'));
$transport->send($message);
$acknowledged = $transport->getAcknowledged();
$this->assertCount(1, $acknowledged);
$this->assertSame($message, $acknowledged[0]);
}
}
?>
Результат выполнения теста:
OK (1 test, 2 assertions)
Пример
Давайте проверим, что после сброса транспорта список подтверждённых сообщений пуст:
<?php
namespace AppTests;
use PHPUnitFrameworkTestCase;
use SymfonyComponentMessengerTransportInMemoryTransport;
use SymfonyComponentMessengerEnvelope;
class TransportResetTest extends TestCase
{
public function testResetAcknowledged(): void
{
$transport = new InMemoryTransport();
$transport->send(new Envelope(new AppMessage('hello')));
$transport->reset();
$this->assertSame([], $transport->getAcknowledged());
}
}
?>
Результат выполнения теста:
OK (1 test, 1 assertion)
Смотрите также
-
класс
InMemoryTransport,
который эмулирует транспорт сообщений в тестах -
метод
getSent,
который возвращает список отправленных сообщений -
метод
getRejected,
который возвращает список отклонённых сообщений -
метод
reset,
который очищает состояние транспорта