Handle exceptions inside a test without a stop! Works with PHPUnit and Codeception.
composer require "codeception/assert-throws" --dev Include AssertThrows trait it to a TestCase:
<?phpclass MyTest extendsPHPUnit\Framework\TestCase{useCodeception\AssertThrows; //... } Catch exception thrown inside a code block.
<?php$this->assertThrows(NotFoundException::class, function(){$this->userController->show(99)}); // alternatively$this->assertThrows(newNotFoundException(), function(){$this->userController->show(99)}); // you can also assert that an exception is not throw$this->assertDoesNotThrow(NotFoundException::class, function(){$this->userController->show(99)});You can optionally test the exception message:
<?php$this->assertThrowsWithMessage( NotFoundException::class, 'my error message', function(){thrownewNotFoundException('my error message')} );Codeception AssertThrows is open-sourced software licensed under the MIT License.
© Codeception PHP Testing Framework