Skip to content

Latest commit

 

History

History
51 lines (40 loc) · 1.42 KB

exceptions-and-errors.md

File metadata and controls

51 lines (40 loc) · 1.42 KB
title description
Exceptions & Errors
Exceptions & Errors

Exceptions & Errors

Overview

Testing the behavior in PHP sometimes requires checking if an exception/error was thrown.

Writing a test to expect a test to throw an exception can be done as follows:

it('throws exception', function () {
    throw new Exception('Something happened.');
})->throws(Exception::class);

If you wish to assert the exception message too, you need to give a second argument to the throws method:

it('throws exception', function () {
    throw new Exception('Something happened.');
})->throws(Exception::class, 'Something happened.');

If you're only interested in the message, and the exception type isn't important, you can just provide the message by itself:

it('throws exception', function () {
    throw new Exception('Something happened.');
})->throws('Something happened.');

You may also use the throwsIf method to conditional assert an exception if a given boolean expression evaluates to true:

it('throwsIf exception', function () {
    // ..
})->throwsIf(fn() => DB::getDriverName() === 'mysql', Exception::class, 'MySQL is not supported.');

You may also assert one or more exceptions inside your test function with Expectations' method toThrow()


Next section: Groups Of Tests →