Как использовать функцию ExException в PHPUnit? - PullRequest
0 голосов
/ 19 апреля 2020

Я пытаюсь проверить свое Исключение или любое другое исключение в PHP Единице.

<?php declare(strict_types=1);


namespace Tests\Exception;

use PHPUnit\Framework\TestCase;

class DrinkIsInvalidExceptionTest extends TestCase
{
    public function testIsExceptionThrown(): void
    {
        $this->expectException(\Exception::class);
        try {
            throw new \Exception('Wrong exception');
        } catch(\Exception $exception) {
            echo $exception->getCode();
        }

    }

}

По-прежнему происходит сбой:

Failed asserting that exception of type "Exception" is thrown.

В чем может быть проблема?

1 Ответ

1 голос
/ 19 апреля 2020

Проблема в том, что исключение никогда не генерируется, потому что вы перехватываете его в блоке catch. Правильный код для проверки вашего исключения будет следующим:

class DrinkIsInvalidExceptionTest extends TestCase
{
    public function testIsExceptionThrown(): void
    {
        $this->expectException(\Exception::class);
        $this->expectExceptionCode('the_expected_code');
        $this->expectExceptionMessage('Wrong exception');

        // Here the method that throws the exception
        throw new \Exception('Wrong exception');
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...