Skip to content

Commit 86f49e2

Browse files
committed
Assert::exception() prints stack of unexpected exception
1 parent 2e788e2 commit 86f49e2

File tree

2 files changed

+10
-10
lines changed

2 files changed

+10
-10
lines changed

src/Framework/Assert.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -346,10 +346,10 @@ public static function exception(
346346
self::fail("$class was expected but got " . get_class($e) . ($e->getMessage() ? " ({$e->getMessage()})" : ''), null, null, $e);
347347

348348
} elseif ($message && !self::isMatching($message, $e->getMessage())) {
349-
self::fail("$class with a message matching %2 was expected but got %1", $e->getMessage(), $message);
349+
self::fail("$class with a message matching %2 was expected but got %1", $e->getMessage(), $message, $e);
350350

351351
} elseif ($code !== null && $e->getCode() !== $code) {
352-
self::fail("$class with a code %2 was expected but got %1", $e->getCode(), $code);
352+
self::fail("$class with a code %2 was expected but got %1", $e->getCode(), $code, $e);
353353
}
354354

355355
return $e;

tests/Framework/Assert.exception.phpt

+8-8
Original file line numberDiff line numberDiff line change
@@ -33,23 +33,23 @@ $e = Assert::exception(function () use (&$inner) {
3333
}, Tester\AssertException::class, 'UnknownException was expected but got Exception (message)');
3434
Assert::same($inner, $e->getPrevious());
3535

36-
$e = Assert::exception(function () {
37-
Assert::exception(function () {
38-
throw new Exception('Text');
36+
$e = Assert::exception(function () use (&$inner) {
37+
Assert::exception(function () use (&$inner) {
38+
throw $inner = new Exception('Text');
3939
}, Exception::class, 'Abc');
4040
}, Tester\AssertException::class, "Exception with a message matching 'Abc' was expected but got 'Text'");
41-
Assert::null($e->getPrevious());
41+
Assert::same($inner, $e->getPrevious());
4242

4343
Assert::exception(function () {
4444
throw new Exception('Text', 42);
4545
}, Exception::class, null, 42);
4646

47-
$e = Assert::exception(function () {
48-
Assert::exception(function () {
49-
throw new Exception('Text', 1);
47+
$e = Assert::exception(function () use (&$inner) {
48+
Assert::exception(function () use (&$inner) {
49+
throw $inner = new Exception('Text', 1);
5050
}, Exception::class, null, 42);
5151
}, Tester\AssertException::class, 'Exception with a code 42 was expected but got 1');
52-
Assert::null($e->getPrevious());
52+
Assert::same($inner, $e->getPrevious());
5353

5454
$old = Assert::$onFailure;
5555
Assert::$onFailure = function () {};

0 commit comments

Comments
 (0)