phpunit allowException () неправильное имя исключения - PullRequest
0 голосов
/ 12 октября 2018

Когда я запускаю PHPUnit 6.5.13.и иметь метод тестирования, следующий за этим примером PHPUnit Тестирование исключений Документация

public function testSetRowNumberException()
{
    $this->expectException(\InvalidArgumentException::class);
    $result = $this->tableCell->setRowNumber('text');

}

, который тестирует этот метод:

public function setRowNumber(int $number) : TableCell
{
    if (!is_int($number)) {
        throw new \InvalidArgumentException('Input must be an int.');
    }
    $this->rowNumber = $number;

    return $this;
}

Я получил этот сбой:

Не удалось утверждать, что исключение типа "TypeError" соответствует ожидаемому исключению "InvalidArgumentException".

вопрос заключается в том, почему "TypeError" принимается к утверждению и как использовать утверждение InvalidArgumentException

1 Ответ

0 голосов
/ 12 октября 2018

Понял.Дело в том, что я использовал набор, установленный на int, поэтому код даже не достиг команды thow.

он работает, если тестируемый метод не настроен на набор int:

public function setRowNumber($number) : TableCell
{
    if (!is_int($number)) {
        throw new \InvalidArgumentException('Input must be an int.');
    }
    $this->rowNumber = $number;

    return $this;
}

или когда у теста TypeError

public function testSetRowNumberException()
{
    $this->expectException(\TypeError::class);
    $result = $this->tableCell->setRowNumber('text');
} 

Я останусь со вторым примером.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...