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().
Attributes
#[After]
File
- 
              core/tests/ Drupal/ TestTools/ Extension/ DeprecationBridge/ ExpectDeprecationTrait.php, line 53 
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().
  if (!get_error_handler() instanceof TestErrorHandler) {
    throw new \RuntimeException(sprintf('%s registered its own error handler 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()));
  }
  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.
