Verification: a143cc29221c9be0

Php and or function is not found

Попробуй поймать

Во-первых, это пара try-catch. Я видел, как Адам Уотан использовал его и защищал его в своем курсе TDD. Некоторые разработчики считают это большим старомодным. Однако у него есть одно преимущество. Внутри блока catch вы можете запустить дополнительное условие, связанное с исключением или даже некоторыми другими частями кода, например, пользователь не был обновлен.

/** @test*/
function exception_is_thrown()
{
    try {
        $example = new Example();
        $example->handle();
    } catch (\Exception $e) {
        $this->assertSame('Not Found', $e->getMessage());
        $this->assertSame(404, $e->getCode());

        // additional assertion e.g. user wasn't updated
        return;
    }

    $this->fail('Exception was not thrown.');
}

Ожидания исключения

Этот подход является рекомендуемым PHPunit. Вы можете использовать четыре различных метода expectExceptionexpectExceptionMessageexpectExceptionMessageMatches. Имейте в виду, что, кроме этих 4, Вы не можете использовать никаких других условий. Если вы добавите $this->assertTrue(false); он будет проигнорирован в конце теста.

/** @test */
function exception_is_thrown()
{
    $this->expectException(\Exception::class);
    $this->expectExceptionCode(404);
    $this->expectExceptionMessage('Not Found');
    $this->expectExceptionMessageMatches('/Found/');

    $example = new Example();
    $example->handle();
}