vladahejda / phpunit-assert-exception
Assert exception/throwable/error PHPUnit trait.
Installs: 161 112
Dependents: 13
Suggesters: 0
Security: 0
Stars: 18
Watchers: 3
Forks: 7
Open Issues: 0
Requires
- php: ~7.1
- phpunit/phpunit: ~6.0
README
AssertException
is a trait, so it can be easily used in your test case.
- For PHP 7.1 and PHPUnit 6 compatibility require version
1.3
. - For PHP 7.1 compatibility require version
1.2
. - For PHP 7 compatibility require version
1.1
. - For PHP 5 compatibility require version
1.0
.
Install
$ composer require vladahejda/phpunit-assert-exception
Usage
<?php class MyTest extends \PHPUnit\Framework\TestCase { use VladaHejda\AssertException; public function testMultipleExceptionsAtOnce() { $test = function () { // here comes some test stuff of your unit (tested class) // which you expect that will throw an Exception throw new InvalidArgumentException('Some message 12345', 100); }; // just test if function throws an Exception $this->assertException($test); // pass // test class of an Exception $this->assertException($test, InvalidArgumentException::class); // pass // test Exception code $this->assertException($test, null, 100); // pass // test Exception message $this->assertException($test, null, null, 'Some message 12345'); // pass $this->assertException($test, null, null, 'Some message'); // also pass, because it checks on substring level // test all $this->assertException($test, InvalidArgumentException::class, 100, 'Some message 12345'); // pass // and here some failing tests // wrong class $this->assertException($test, ErrorException::class); // fail // wrong code $this->assertException($test, InvalidArgumentException::class, 200); // fail // wrong message $this->assertException($test, InvalidArgumentException::class, 100, 'Bad message'); // fail } }
Also see an assertError
and assertThrowable
methods, which tests if PHP internal Error
was thrown, or any Throwable
respectively.