Tester\Assert::exception PHP Method

exception() public static method

Checks if the function throws exception.
public static exception ( callable $function, $class, $message = NULL, $code = NULL ) : Exception
$function callable
return Exception
    public static function exception(callable $function, $class, $message = NULL, $code = NULL)
    {
        self::$counter++;
        $e = NULL;
        try {
            call_user_func($function);
        } catch (\Throwable $e) {
        } catch (\Exception $e) {
        }
        if ($e === NULL) {
            self::fail("{$class} was expected, but none was thrown");
        } elseif (!$e instanceof $class) {
            self::fail("{$class} was expected but got " . get_class($e) . ($e->getMessage() ? " ({$e->getMessage()})" : ''));
        } elseif ($message && !self::isMatching($message, $e->getMessage())) {
            self::fail("{$class} with a message matching %2 was expected but got %1", $e->getMessage(), $message);
        } elseif ($code !== NULL && $e->getCode() !== $code) {
            self::fail("{$class} with a code %2 was expected but got %1", $e->getCode(), $code);
        }
        return $e;
    }

Usage Example

Example #1
0
 public static function assertTypeError($function)
 {
     if (PHP_VERSION_ID < 70000) {
         Assert::error($function, E_RECOVERABLE_ERROR);
     } else {
         Assert::exception($function, '\\TypeError');
     }
 }
All Usage Examples Of Tester\Assert::exception