@expectedExceptionMessage
The @expectedExceptionMessage
annotation works similar to @expectedExceptionCode
as it lets you make an assertion on the error message of an exception.
use PHPUnit\Framework\TestCase; class MyTest extends TestCase { /** * @expectedException MyException * @expectedExceptionMessage Some Message */ public function testExceptionHasRightMessage() { throw new MyException('Some Message', 20); } }
The expected message can be a substring of the exception Message. This can be useful to only assert that a certain name or parameter that was passed in shows up in the exception and not fixate the whole exception message in the test.
use PHPUnit\Framework\TestCase; class MyTest extends TestCase { /** * @expectedException MyException * @expectedExceptionMessage broken */ public function testExceptionHasRightMessage() { $param = "broken"; throw new MyException('Invalid parameter "'.$param.'".', 20); } }
To ease testing and reduce duplication a shortcut can be used to specify a class constant as an @expectedExceptionMessage
using the "@expectedExceptionMessage ClassName::CONST
" syntax. A sample can be found in the section called “@expectedExceptionCode”.
Please login to continue.