Как поймать (ViewModel
) вывод действия контроллера в ZF2 / ZF3?
Фон:
Я пишу несколько интеграционных тестов для приложения Zend Framework 3 (только что перенесенного с ZF2). Я использую PHPUnit v6.2.2
и Zend \ Test v3.1.0
. Я хочу протестировать часть процесса с момента вызова маршрута до момента сохранения / получения данных. Это означает тестирование всех действий контроллера по направлениям:
- данные сохраняются должным образом (для этого я хочу вызвать маршруты / действия и затем проверить новое состояние базы данных);
- данные извлекаются, как ожидалось (для этого я хочу вызвать маршруты / действия и затем проверить результат действия).
Первое направление ясно: после вызова маршрута я просто запускаю простые запросы к базе данных и проверяю, есть ли ожидаемые изменения.
public function testBuzAction()
{
$this->dispatch('/foo/bar/buz');
// Here might be optionally some asserts, whether the correct action is called...
// Here are the database checks...
}
Но для другого направления нам нужен ViewModel
, возвращаемый действием.
public function testBuzAction()
{
$this->dispatch('/foo/bar/buz');
// Here might be optionally some asserts, whether the correct action is called...
// Here is the ViewModel output of the Bar#buzAction() analyzed.
}
Как получить результат действия в тесте PHPUnit?