Тестирование PHP ошибок на PHPUnit

PHPUnit по умолчанию преобразует PHP ошибки (errors, warnings и notices) в исключения, чтобы с ними можно было работать. Это даёт возможность тестировать наличие ошибок, используя аннотацию @expectedException (см. Тестирование исключений в PHPUnit). Если возникли проблемы с такими проверками, то проверьте настройку PHP error_reporting.

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

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

use PHPUnit\Framework\TestCase;
use PHPUnit\Framework\Error\Error;

class ErrorTest extends TestCase
{
    /**
     * @expectedException Error
     */
    public function testNoExistsClass()
    {
        new NoExistsClass();
    }
}
            

 

Также можно проверять warning и notice соответствующими классами PHPUnit\Framework\Error\Warning и PHPUnit\Framework\Error\Notice.