diff --git a/core/lib/Drupal/Core/Config/CachedStorage.php b/core/lib/Drupal/Core/Config/CachedStorage.php
index a21f137..a6a365c 100644
--- a/core/lib/Drupal/Core/Config/CachedStorage.php
+++ b/core/lib/Drupal/Core/Config/CachedStorage.php
@@ -18,7 +18,7 @@
  * the cache and delegates the read to the storage on a cache miss. It also
  * handles cache invalidation.
  */
-class CachedStorage implements StorageInterface, StorageCacheInterface {
+class CachedStorage implements StorageInterface, StorageCacheInterface, \Serializable {
   use DependencySerializationTrait;
 
   /**
diff --git a/core/lib/Drupal/Core/Config/ConfigBase.php b/core/lib/Drupal/Core/Config/ConfigBase.php
index eee76a2..2eca053 100644
--- a/core/lib/Drupal/Core/Config/ConfigBase.php
+++ b/core/lib/Drupal/Core/Config/ConfigBase.php
@@ -28,7 +28,7 @@
  * @see \Drupal\Core\Config\Config
  * @see \Drupal\Core\Theme\ThemeSettings
  */
-abstract class ConfigBase implements CacheableDependencyInterface {
+abstract class ConfigBase implements CacheableDependencyInterface, \Serializable {
   use DependencySerializationTrait;
 
   /**
diff --git a/core/lib/Drupal/Core/Config/ConfigImporter.php b/core/lib/Drupal/Core/Config/ConfigImporter.php
index ed50735..f6dcb94 100644
--- a/core/lib/Drupal/Core/Config/ConfigImporter.php
+++ b/core/lib/Drupal/Core/Config/ConfigImporter.php
@@ -39,7 +39,7 @@
  *
  * @see \Drupal\Core\Config\ConfigImporterEvent
  */
-class ConfigImporter {
+class ConfigImporter implements \Serializable {
   use StringTranslationTrait;
   use DependencySerializationTrait;
 
diff --git a/core/lib/Drupal/Core/Config/DatabaseStorage.php b/core/lib/Drupal/Core/Config/DatabaseStorage.php
index 646a1d5..59a39f1 100644
--- a/core/lib/Drupal/Core/Config/DatabaseStorage.php
+++ b/core/lib/Drupal/Core/Config/DatabaseStorage.php
@@ -15,7 +15,7 @@
 /**
  * Defines the Database storage.
  */
-class DatabaseStorage implements StorageInterface {
+class DatabaseStorage implements StorageInterface, \Serializable {
   use DependencySerializationTrait;
 
   /**
diff --git a/core/lib/Drupal/Core/Config/Entity/ConfigEntityBase.php b/core/lib/Drupal/Core/Config/Entity/ConfigEntityBase.php
index 68be002..dcf76dc 100644
--- a/core/lib/Drupal/Core/Config/Entity/ConfigEntityBase.php
+++ b/core/lib/Drupal/Core/Config/Entity/ConfigEntityBase.php
@@ -605,4 +605,36 @@ public function save() {
     return $return;
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function serialize() {
+    if ($this->getEntityType()->get('config_export')) {
+      $data = [
+        'entity_type_id' => $this->getEntityTypeId(),
+        'is_new' => $this->isNew(),
+        'values' => $this->toArray(),
+      ];
+      return serialize(['_config_entity_serialize' => $data]);
+    }
+    else {
+      return parent::serialize();
+    }
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function unserialize($serialized) {
+    if (strpos($serialized, '"_config_entity_serialize"') !== FALSE ) {
+      $unserialized = unserialize($serialized);
+      $data = $unserialized['_config_entity_serialize'];
+      $this->__construct($data['values'], $data['entity_type_id']);
+      $this->enforceIsNew($data['is_new']);
+    }
+    else {
+      parent::unserialize($serialized);
+    }
+  }
+
 }
diff --git a/core/lib/Drupal/Core/Config/StorageComparer.php b/core/lib/Drupal/Core/Config/StorageComparer.php
index 2e61f96..2b4ec18 100644
--- a/core/lib/Drupal/Core/Config/StorageComparer.php
+++ b/core/lib/Drupal/Core/Config/StorageComparer.php
@@ -15,7 +15,7 @@
 /**
  * Defines a config storage comparer.
  */
-class StorageComparer implements StorageComparerInterface {
+class StorageComparer implements StorageComparerInterface, \Serializable {
   use DependencySerializationTrait;
 
   /**
diff --git a/core/lib/Drupal/Core/Controller/FormController.php b/core/lib/Drupal/Core/Controller/FormController.php
index 6a9b9d5..a684900 100644
--- a/core/lib/Drupal/Core/Controller/FormController.php
+++ b/core/lib/Drupal/Core/Controller/FormController.php
@@ -18,7 +18,7 @@
  *
  * @todo Make this a trait in PHP 5.4.
  */
-abstract class FormController {
+abstract class FormController implements \Serializable {
   use DependencySerializationTrait;
 
   /**
diff --git a/core/lib/Drupal/Core/DependencyInjection/DependencySerializationTrait.php b/core/lib/Drupal/Core/DependencyInjection/DependencySerializationTrait.php
index cb6a27d..5e5141d 100644
--- a/core/lib/Drupal/Core/DependencyInjection/DependencySerializationTrait.php
+++ b/core/lib/Drupal/Core/DependencyInjection/DependencySerializationTrait.php
@@ -15,45 +15,46 @@
 trait DependencySerializationTrait {
 
   /**
-   * An array of service IDs keyed by property name used for serialization.
-   *
-   * @var array
-   */
-  protected $_serviceIds = array();
-
-  /**
    * {@inheritdoc}
    */
-  public function __sleep() {
-    $this->_serviceIds = array();
-    $vars = get_object_vars($this);
-    foreach ($vars as $key => $value) {
+  public function serialize() {
+    $serviceIds = [];
+    $data = get_object_vars($this);
+    foreach ($data as $key => $value) {
       if (is_object($value) && isset($value->_serviceId)) {
         // If a class member was instantiated by the dependency injection
         // container, only store its ID so it can be used to get a fresh object
         // on unserialization.
-        $this->_serviceIds[$key] = $value->_serviceId;
-        unset($vars[$key]);
+        $serviceIds[$key] = $value->_serviceId;
+        $data[$key] = null;
       }
       // Special case the container, which might not have a service ID.
       elseif ($value instanceof ContainerInterface) {
-        $this->_serviceIds[$key] = 'service_container';
-        unset($vars[$key]);
+        $serviceIds[$key] = 'service_container';
+        $data[$key] = null;
       }
     }
 
-    return array_keys($vars);
+    return serialize([
+      'data' => $data,
+      'service_ids' => $serviceIds,
+    ]);
   }
 
   /**
    * {@inheritdoc}
    */
-  public function __wakeup() {
-    $container = \Drupal::getContainer();
-    foreach ($this->_serviceIds as $key => $service_id) {
-      $this->$key = $container->get($service_id);
+  public function unserialize($serialized) {
+    $unserialized = unserialize($serialized);
+    // PHPUnit uses unserialize() on a made up string as a trick when bypassing
+    // the contructor on mock object creation. Make sure we only run on objects
+    // that have been serialized through our serialize() method.
+    if (is_array($unserialized)) {
+      $container = \Drupal::getContainer();
+      foreach ($unserialized['data'] as $key => $value) {
+        $this->$key = isset($unserialized['service_ids'][$key]) ? $container->get($unserialized['service_ids'][$key]) : $value;
+      }
     }
-    $this->_serviceIds = array();
   }
 
 }
diff --git a/core/lib/Drupal/Core/Entity/Entity.php b/core/lib/Drupal/Core/Entity/Entity.php
index 9ffa497..5bec536 100644
--- a/core/lib/Drupal/Core/Entity/Entity.php
+++ b/core/lib/Drupal/Core/Entity/Entity.php
@@ -22,10 +22,10 @@
 /**
  * Defines a base entity class.
  */
-abstract class Entity implements EntityInterface {
+abstract class Entity implements EntityInterface, \Serializable {
 
   use DependencySerializationTrait {
-    __sleep as traitSleep;
+    serialize as traitSerialize;
   }
 
   /**
@@ -580,9 +580,9 @@ public function getTypedData() {
   /**
    * {@inheritdoc}
    */
-  public function __sleep() {
+  public function serialize() {
     $this->typedData = NULL;
-    return $this->traitSleep();
+    return $this->traitSerialize();
   }
 
   /**
diff --git a/core/lib/Drupal/Core/Entity/EntityHandlerBase.php b/core/lib/Drupal/Core/Entity/EntityHandlerBase.php
index c325542..fc1f8d6 100644
--- a/core/lib/Drupal/Core/Entity/EntityHandlerBase.php
+++ b/core/lib/Drupal/Core/Entity/EntityHandlerBase.php
@@ -16,7 +16,7 @@
  *
  * @todo Deprecate this in https://www.drupal.org/node/2471663.
  */
-abstract class EntityHandlerBase {
+abstract class EntityHandlerBase implements \Serializable {
   use StringTranslationTrait;
   use DependencySerializationTrait;
 
diff --git a/core/lib/Drupal/Core/Field/FieldConfigBase.php b/core/lib/Drupal/Core/Field/FieldConfigBase.php
index a7790a3..8731359 100644
--- a/core/lib/Drupal/Core/Field/FieldConfigBase.php
+++ b/core/lib/Drupal/Core/Field/FieldConfigBase.php
@@ -419,21 +419,6 @@ public function getDefaultValue(FieldableEntityInterface $entity) {
   }
 
   /**
-   * Implements the magic __sleep() method.
-   *
-   * Using the Serialize interface and serialize() / unserialize() methods
-   * breaks entity forms in PHP 5.4.
-   * @todo Investigate in https://www.drupal.org/node/2074253.
-   */
-  public function __sleep() {
-    // Only serialize necessary properties, excluding those that can be
-    // recalculated.
-    $properties = get_object_vars($this);
-    unset($properties['fieldStorage'], $properties['itemDefinition'], $properties['bundleRenameAllowed'], $properties['original']);
-    return array_keys($properties);
-  }
-
-  /**
    * {@inheritdoc}
    */
   public static function createFromItemType($item_type) {
diff --git a/core/lib/Drupal/Core/Form/FormBase.php b/core/lib/Drupal/Core/Form/FormBase.php
index 5c2d2af..77e7da3 100644
--- a/core/lib/Drupal/Core/Form/FormBase.php
+++ b/core/lib/Drupal/Core/Form/FormBase.php
@@ -22,7 +22,7 @@
  *
  * @ingroup form_api
  */
-abstract class FormBase implements FormInterface, ContainerInjectionInterface {
+abstract class FormBase implements FormInterface, ContainerInjectionInterface, \Serializable {
 
   use DependencySerializationTrait;
   use LinkGeneratorTrait;
diff --git a/core/lib/Drupal/Core/KeyValueStore/DatabaseStorage.php b/core/lib/Drupal/Core/KeyValueStore/DatabaseStorage.php
index abbd0d1..850938e 100644
--- a/core/lib/Drupal/Core/KeyValueStore/DatabaseStorage.php
+++ b/core/lib/Drupal/Core/KeyValueStore/DatabaseStorage.php
@@ -18,7 +18,7 @@
  * This is Drupal's default key/value store implementation. It uses the database
  * to store key/value data.
  */
-class DatabaseStorage extends StorageBase {
+class DatabaseStorage extends StorageBase implements \Serializable {
 
   use DependencySerializationTrait;
 
diff --git a/core/lib/Drupal/Core/Language/LanguageManager.php b/core/lib/Drupal/Core/Language/LanguageManager.php
index eda4352..b064fff 100644
--- a/core/lib/Drupal/Core/Language/LanguageManager.php
+++ b/core/lib/Drupal/Core/Language/LanguageManager.php
@@ -16,7 +16,7 @@
 /**
  * Class responsible for providing language support on language-unaware sites.
  */
-class LanguageManager implements LanguageManagerInterface {
+class LanguageManager implements LanguageManagerInterface, \Serializable {
   use DependencySerializationTrait;
 
   /**
diff --git a/core/lib/Drupal/Core/Plugin/ContextAwarePluginBase.php b/core/lib/Drupal/Core/Plugin/ContextAwarePluginBase.php
index df86cf0..a068c98 100644
--- a/core/lib/Drupal/Core/Plugin/ContextAwarePluginBase.php
+++ b/core/lib/Drupal/Core/Plugin/ContextAwarePluginBase.php
@@ -20,7 +20,7 @@
 /**
  * Base class for plugins that are context aware.
  */
-abstract class ContextAwarePluginBase extends ComponentContextAwarePluginBase implements ContextAwarePluginInterface {
+abstract class ContextAwarePluginBase extends ComponentContextAwarePluginBase implements ContextAwarePluginInterface, \Serializable {
   use TypedDataTrait;
   use StringTranslationTrait;
   use DependencySerializationTrait;
diff --git a/core/lib/Drupal/Core/Plugin/DefaultLazyPluginCollection.php b/core/lib/Drupal/Core/Plugin/DefaultLazyPluginCollection.php
index 61702a0..ada5928 100644
--- a/core/lib/Drupal/Core/Plugin/DefaultLazyPluginCollection.php
+++ b/core/lib/Drupal/Core/Plugin/DefaultLazyPluginCollection.php
@@ -21,7 +21,7 @@
  * the configuration key containing the plugin ID is specified by
  * self::$pluginKey.
  */
-class DefaultLazyPluginCollection extends LazyPluginCollection {
+class DefaultLazyPluginCollection extends LazyPluginCollection implements \Serializable {
   use DependencySerializationTrait;
 
   /**
diff --git a/core/lib/Drupal/Core/Plugin/DefaultSingleLazyPluginCollection.php b/core/lib/Drupal/Core/Plugin/DefaultSingleLazyPluginCollection.php
index 298f94d..6f16a19 100644
--- a/core/lib/Drupal/Core/Plugin/DefaultSingleLazyPluginCollection.php
+++ b/core/lib/Drupal/Core/Plugin/DefaultSingleLazyPluginCollection.php
@@ -21,7 +21,7 @@
  * class can be used directly, or subclassed to add further exception handling
  * in self::initializePlugin().
  */
-class DefaultSingleLazyPluginCollection extends LazyPluginCollection {
+class DefaultSingleLazyPluginCollection extends LazyPluginCollection implements \Serializable {
   use DependencySerializationTrait;
 
   /**
diff --git a/core/lib/Drupal/Core/Plugin/PluginBase.php b/core/lib/Drupal/Core/Plugin/PluginBase.php
index 1af9b82..d1f4bc8 100644
--- a/core/lib/Drupal/Core/Plugin/PluginBase.php
+++ b/core/lib/Drupal/Core/Plugin/PluginBase.php
@@ -16,7 +16,7 @@
  *
  * @ingroup plugin_api
  */
-abstract class PluginBase extends ComponentPluginBase {
+abstract class PluginBase extends ComponentPluginBase implements \Serializable {
   use StringTranslationTrait;
   use DependencySerializationTrait;
 
diff --git a/core/lib/Drupal/Core/Session/SessionHandler.php b/core/lib/Drupal/Core/Session/SessionHandler.php
index ec1e430..c204c8b 100644
--- a/core/lib/Drupal/Core/Session/SessionHandler.php
+++ b/core/lib/Drupal/Core/Session/SessionHandler.php
@@ -17,7 +17,7 @@
 /**
  * Default session handler.
  */
-class SessionHandler extends AbstractProxy implements \SessionHandlerInterface {
+class SessionHandler extends AbstractProxy implements \SessionHandlerInterface, \Serializable {
 
   use DependencySerializationTrait;
 
diff --git a/core/lib/Drupal/Core/Session/SessionManager.php b/core/lib/Drupal/Core/Session/SessionManager.php
index 2c35259..970d0ae 100644
--- a/core/lib/Drupal/Core/Session/SessionManager.php
+++ b/core/lib/Drupal/Core/Session/SessionManager.php
@@ -30,7 +30,7 @@
  *   here needs to be extracted either into a dedicated session handler proxy
  *   (e.g. sid-hashing) or relocated to the authentication subsystem.
  */
-class SessionManager extends NativeSessionStorage implements SessionManagerInterface {
+class SessionManager extends NativeSessionStorage implements SessionManagerInterface, \Serializable {
 
   use DependencySerializationTrait;
 
diff --git a/core/lib/Drupal/Core/Url.php b/core/lib/Drupal/Core/Url.php
index 70ee9cf..c713765 100644
--- a/core/lib/Drupal/Core/Url.php
+++ b/core/lib/Drupal/Core/Url.php
@@ -20,7 +20,7 @@
 /**
  * Defines an object that holds information about a URL.
  */
-class Url {
+class Url implements \Serializable {
   use DependencySerializationTrait;
 
   /**
diff --git a/core/modules/content_translation/src/ContentTranslationHandler.php b/core/modules/content_translation/src/ContentTranslationHandler.php
index 28529eb..fcd7d16 100644
--- a/core/modules/content_translation/src/ContentTranslationHandler.php
+++ b/core/modules/content_translation/src/ContentTranslationHandler.php
@@ -27,7 +27,7 @@
  *
  * @ingroup entity_api
  */
-class ContentTranslationHandler implements ContentTranslationHandlerInterface, EntityHandlerInterface {
+class ContentTranslationHandler implements ContentTranslationHandlerInterface, EntityHandlerInterface, \Serializable {
   use DependencySerializationTrait;
 
   /**
diff --git a/core/modules/field/src/Entity/FieldStorageConfig.php b/core/modules/field/src/Entity/FieldStorageConfig.php
index 66b6fff..ace5384 100644
--- a/core/modules/field/src/Entity/FieldStorageConfig.php
+++ b/core/modules/field/src/Entity/FieldStorageConfig.php
@@ -697,21 +697,6 @@ public function hasData() {
   }
 
   /**
-   * Implements the magic __sleep() method.
-   *
-   * Using the Serialize interface and serialize() / unserialize() methods
-   * breaks entity forms in PHP 5.4.
-   * @todo Investigate in https://www.drupal.org/node/2074253.
-   */
-  public function __sleep() {
-    // Only serialize necessary properties, excluding those that can be
-    // recalculated.
-    $properties = get_object_vars($this);
-    unset($properties['schema'], $properties['propertyDefinitions'], $properties['original']);
-    return array_keys($properties);
-  }
-
-  /**
    * {@inheritdoc}
    */
   public function getConstraints() {
diff --git a/core/modules/forum/src/ForumManager.php b/core/modules/forum/src/ForumManager.php
index 6545da1..0464ed3 100644
--- a/core/modules/forum/src/ForumManager.php
+++ b/core/modules/forum/src/ForumManager.php
@@ -20,11 +20,10 @@
 /**
  * Provides forum manager service.
  */
-class ForumManager implements ForumManagerInterface {
+class ForumManager implements ForumManagerInterface, \Serializable {
   use StringTranslationTrait;
   use DependencySerializationTrait {
-    __wakeup as defaultWakeup;
-    __sleep as defaultSleep;
+    serialize as traitSerialize;
   }
 
   /**
@@ -498,24 +497,10 @@ public function unreadTopics($term, $uid) {
   /**
    * {@inheritdoc}
    */
-  public function __sleep() {
-    $vars = $this->defaultSleep();
+  public function serialize() {
     // Do not serialize static cache.
-    unset($vars['history'], $vars['index'], $vars['lastPostData'], $vars['forumChildren'], $vars['forumStatistics']);
-    return $vars;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function __wakeup() {
-    $this->defaultWakeup();
-    // Initialize static cache.
-    $this->history = array();
-    $this->lastPostData = array();
-    $this->forumChildren = array();
-    $this->forumStatistics = array();
-    $this->index = NULL;
+    unset($this->history, $this->index, $this->lastPostData, $this->forumChildren, $this->forumStatistics);
+    return $this->traitSerialize();
   }
 
 }
diff --git a/core/modules/tour/tests/src/Unit/Entity/TourTest.php b/core/modules/tour/tests/src/Unit/Entity/TourTest.php
index a6625c8..93526e9 100644
--- a/core/modules/tour/tests/src/Unit/Entity/TourTest.php
+++ b/core/modules/tour/tests/src/Unit/Entity/TourTest.php
@@ -6,6 +6,7 @@
 
 namespace Drupal\Tests\tour\Unit\Entity;
 
+use Drupal\Core\DependencyInjection\ContainerBuilder;
 use Drupal\Tests\UnitTestCase;
 
 /**
@@ -31,8 +32,17 @@ class TourTest extends UnitTestCase {
    * @dataProvider routeProvider
    */
   public function testHasMatchingRoute($routes, $route_name, $route_params, $result) {
-    $tour = $this->getMockBuilder('\Drupal\tour\Entity\Tour')
+    // Tour::__construct() pulls the plugin.manager.tour.tip service from the
+    // container. Mock it and and place it there.
+    $tip_manager = $this->getMockBuilder('Drupal\tour\TipPluginManager')
       ->disableOriginalConstructor()
+      ->getMock();
+    $container = new ContainerBuilder();
+    $container->set('plugin.manager.tour.tip', $tip_manager);
+    \Drupal::setContainer($container);
+
+    $tour = $this->getMockBuilder('\Drupal\tour\Entity\Tour')
+      ->setConstructorArgs(array(array(), 'tour'))
       ->setMethods(array('getRoutes'))
       ->getMock();
 
diff --git a/core/modules/update/src/UpdateFetcher.php b/core/modules/update/src/UpdateFetcher.php
index 118d3a9..538538e 100644
--- a/core/modules/update/src/UpdateFetcher.php
+++ b/core/modules/update/src/UpdateFetcher.php
@@ -15,7 +15,7 @@
 /**
  * Fetches project information from remote locations.
  */
-class UpdateFetcher implements UpdateFetcherInterface {
+class UpdateFetcher implements UpdateFetcherInterface, \Serializable {
 
   use DependencySerializationTrait;
 
diff --git a/core/modules/update/src/UpdateManager.php b/core/modules/update/src/UpdateManager.php
index 007b040..489c23d 100644
--- a/core/modules/update/src/UpdateManager.php
+++ b/core/modules/update/src/UpdateManager.php
@@ -18,7 +18,7 @@
 /**
  * Default implementation of UpdateManagerInterface.
  */
-class UpdateManager implements UpdateManagerInterface {
+class UpdateManager implements UpdateManagerInterface, \Serializable {
   use DependencySerializationTrait;
   use StringTranslationTrait;
 
diff --git a/core/modules/views/src/Form/ViewsForm.php b/core/modules/views/src/Form/ViewsForm.php
index 39ff499..b9bfd13 100644
--- a/core/modules/views/src/Form/ViewsForm.php
+++ b/core/modules/views/src/Form/ViewsForm.php
@@ -27,7 +27,7 @@
  * default is \Drupal\views\Form\ViewsFormMainForm). That way it is actually
  * possible for modules to have a multistep form if they need to.
  */
-class ViewsForm implements FormInterface, ContainerInjectionInterface {
+class ViewsForm implements FormInterface, ContainerInjectionInterface, \Serializable {
   use DependencySerializationTrait;
 
   /**
diff --git a/core/modules/views/src/ViewExecutable.php b/core/modules/views/src/ViewExecutable.php
index d0ae414..78251a7 100644
--- a/core/modules/views/src/ViewExecutable.php
+++ b/core/modules/views/src/ViewExecutable.php
@@ -30,7 +30,6 @@
  * functions to build the view query, execute the query and render the output.
  */
 class ViewExecutable implements \Serializable {
-  use DependencySerializationTrait;
 
   /**
    * The config entity in which the view is stored.
diff --git a/core/modules/views_ui/tests/src/Unit/ViewUIObjectTest.php b/core/modules/views_ui/tests/src/Unit/ViewUIObjectTest.php
index cb26b58..67ec856 100644
--- a/core/modules/views_ui/tests/src/Unit/ViewUIObjectTest.php
+++ b/core/modules/views_ui/tests/src/Unit/ViewUIObjectTest.php
@@ -122,6 +122,12 @@ public function testIsLocked() {
   public function testSerialization() {
     // Set a container so the DependencySerializationTrait has it.
     $container = new ContainerBuilder();
+    $entity_type = $this->getMock('\Drupal\views\ViewEntityInterface');
+    $entity_manager = $this->getMock('\Drupal\Core\Entity\EntityManagerInterface');
+    $entity_manager->expects($this->any())
+      ->method('getDefinition')
+      ->will($this->returnValue($entity_type));
+    $container->set('entity.manager', $entity_manager);
     \Drupal::setContainer($container);
 
     $storage = new View([], 'view');
diff --git a/core/tests/Drupal/Tests/Core/DependencyInjection/DependencySerializationTest.php b/core/tests/Drupal/Tests/Core/DependencyInjection/DependencySerializationTest.php
index ad05400..1eadc00 100644
--- a/core/tests/Drupal/Tests/Core/DependencyInjection/DependencySerializationTest.php
+++ b/core/tests/Drupal/Tests/Core/DependencyInjection/DependencySerializationTest.php
@@ -20,8 +20,8 @@
 class DependencySerializationTest extends UnitTestCase {
 
   /**
-   * @covers ::__sleep
-   * @covers ::__wakeup
+   * @covers ::serialize
+   * @covers ::unserialize
    */
   public function testSerialization() {
     // Create a pseudo service and dependency injected object.
@@ -44,7 +44,6 @@ public function testSerialization() {
 
     $this->assertSame($service, $dependencySerialization->service);
     $this->assertSame($container, $dependencySerialization->container);
-    $this->assertEmpty($dependencySerialization->getServiceIds());
   }
 
 }
@@ -52,7 +51,7 @@ public function testSerialization() {
 /**
  * Defines a test class which has a single service as dependency.
  */
-class DependencySerializationTestDummy implements ContainerAwareInterface {
+class DependencySerializationTestDummy implements ContainerAwareInterface, \Serializable {
 
   use DependencySerializationTrait;
 
@@ -86,11 +85,4 @@ public function __construct(\stdClass $service) {
   public function setContainer(ContainerInterface $container = NULL) {
     $this->container = $container;
   }
-
-  /**
-   * Gets the stored service IDs.
-   */
-  public function getServiceIds() {
-    return $this->_serviceIds;
-  }
 }
