@@ -1284,7 +1284,7 @@ public function __construct(\stdClass $data)
12841284 $ callable = $ container ->callable (get_class ($ controller ));
12851285
12861286 $ this ->expectException (\BadMethodCallException::class);
1287- $ this ->expectExceptionMessage ( ' Argument 1 ( $username) of {closure}( ) is not defined ' );
1287+ $ this ->expectExceptionMessageMatches ( ' / Argument 1 \(\ $username\ ) of {closure(:[^{}]+)?}\(\ ) is not defined$/ ' );
12881288 $ callable ($ request );
12891289 }
12901290
@@ -1770,7 +1770,7 @@ public function testCallableReturnsCallableThatThrowsWhenFactoryRequiresUntypedA
17701770 $ callable = $ container ->callable (\stdClass::class);
17711771
17721772 $ this ->expectException (\BadMethodCallException::class);
1773- $ this ->expectExceptionMessage ( ' Argument 1 ( $undefined) of {closure}( ) has no type ' );
1773+ $ this ->expectExceptionMessageMatches ( ' / Argument 1 \(\ $undefined\ ) of {closure(:[^{}]+)?}\(\ ) has no type$/ ' );
17741774 $ callable ($ request );
17751775 }
17761776
@@ -1788,7 +1788,7 @@ public function testCallableReturnsCallableThatThrowsWhenFactoryRequiresUndefine
17881788 $ callable = $ container ->callable (\stdClass::class);
17891789
17901790 $ this ->expectException (\BadMethodCallException::class);
1791- $ this ->expectExceptionMessage ( ' Argument 1 ( $undefined) of {closure}( ) is not defined ' );
1791+ $ this ->expectExceptionMessageMatches ( ' / Argument 1 \(\ $undefined\ ) of {closure(:[^{}]+)?}\(\ ) is not defined$/ ' );
17921792 $ callable ($ request );
17931793 }
17941794
@@ -1803,7 +1803,7 @@ public function testCallableReturnsCallableThatThrowsWhenFactoryRequiresRecursiv
18031803 $ callable = $ container ->callable (\stdClass::class);
18041804
18051805 $ this ->expectException (\BadMethodCallException::class);
1806- $ this ->expectExceptionMessage ( ' Argument 1 ( $data) of {closure}( ) is recursive ' );
1806+ $ this ->expectExceptionMessageMatches ( ' / Argument 1 \(\ $data\ ) of {closure(:[^{}]+)?}\(\ ) is recursive$/ ' );
18071807 $ callable ($ request );
18081808 }
18091809
@@ -2233,4 +2233,16 @@ public function testCtorWithInvalidValueThrows(): void
22332233 $ this ->expectExceptionMessage ('Argument #1 ($loader) must be of type array|Psr\Container\ContainerInterface, stdClass given ' );
22342234 new Container ((object ) []); // @phpstan-ignore-line
22352235 }
2236+
2237+ public function expectExceptionMessageMatches (string $ regularExpression ): void
2238+ {
2239+ if (method_exists (parent ::class, 'expectExceptionMessageMatches ' )) {
2240+ // @phpstan-ignore-next-line PHPUnit 8.4+
2241+ parent ::expectExceptionMessageMatches ($ regularExpression );
2242+ } else {
2243+ // legacy PHPUnit
2244+ assert (method_exists ($ this , 'expectExceptionMessageRegExp ' ));
2245+ $ this ->expectExceptionMessageRegExp ($ regularExpression );
2246+ }
2247+ }
22362248}
0 commit comments