function ExpectDeprecationTrait::tearDownErrorHandler
Tears down the test error handler.
This method is run after each test's ::tearDown() method, and checks if collected deprecations match the expectations; it also resets the error handler to the one set prior of the change made by ::setUpErrorHandler().
File
-
core/
tests/ Drupal/ TestTools/ Extension/ DeprecationBridge/ ExpectDeprecationTrait.php, line 54
Class
- ExpectDeprecationTrait
- A trait to include in Drupal tests to manage expected deprecations.
Namespace
Drupal\TestTools\Extension\DeprecationBridgeCode
public function tearDownErrorHandler() : void {
if (!DeprecationHandler::isEnabled()) {
return;
}
// We expect that the current error handler is the one set by
// ::setUpErrorHandler() prior to the start of the test execution. If not,
// the error handler was changed during the test execution but not properly
// restored during ::tearDown().
$handler = Error::currentErrorHandler();
if (!$handler instanceof TestErrorHandler) {
throw new \RuntimeException(sprintf('%s registered its own error handler (%s) without restoring the previous one before or during tear down. This can cause unpredictable test results. Ensure the test cleans up after itself.', $this->name(), self::getCallableName($handler)));
}
restore_error_handler();
// Checks if collected deprecations match the expectations.
if (DeprecationHandler::getExpectedDeprecations()) {
$prefix = "@expectedDeprecation:\n";
$expDep = $prefix . '%A ' . implode("\n%A ", DeprecationHandler::getExpectedDeprecations()) . "\n%A";
$actDep = $prefix . ' ' . implode("\n ", DeprecationHandler::getCollectedDeprecations()) . "\n";
$this->assertStringMatchesFormat($expDep, $actDep);
}
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.