Тестировании вывода на PHPUnit

Иногда нужно тестировать, что код создаёт определённый вывод. Для этого в PHPUnit есть метод expectOutputString().

Приведём пример:

<?php
// tests/ExampleProject/OutputTest.php
namespace Tests\ExampleProject;

use PHPUnit\Framework\TestCase;

class OutputTest extends TestCase
{
    public function testEchoOutput()
    {
        $this->expectOutputString('Test string');
        echo 'Test string';
    }

    public function testPrintOutput()
    {
        $this->expectOutputString('Test string 2');
        print 'Test string 2';
    }
}
            

 

Также для проверки есть методы setOutputCallback() и expectOutputRegex().