diff --git a/core/tests/Drupal/Tests/Component/Plugin/Derivative/DeriverBaseTest.php b/core/tests/Drupal/Tests/Component/Plugin/Derivative/DeriverBaseTest.php
new file mode 100644
index 0000000..45a9250
--- /dev/null
+++ b/core/tests/Drupal/Tests/Component/Plugin/Derivative/DeriverBaseTest.php
@@ -0,0 +1,65 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\Tests\Component\Plugin\Derivative\DeriverBaseTest.
+ */
+
+namespace Drupal\Tests\Component\Plugin\Derivative;
+
+use Drupal\Tests\UnitTestCase;
+
+/**
+ * @coversDefaultClass Drupal\Component\Plugin\Derivative\DeriverBase
+ */
+class DeriverBaseTest extends UnitTestCase {
+
+  /**
+   * Data provider for testGetDerivativeDefinition().
+   *
+   * @return array
+   *   - Derivatives definition array to set into ::$derivatives.
+   *   - The derivative ID to query for within the derivatives array. This value
+   *     is passed to getDerivativeDefinition().
+   */
+  public function providerGetDerivativeDefinition() {
+    return [
+      [['id' => 'definition'], 'id'],
+      [NULL, 'id'],
+      [[], 'id'],
+      [['foo' => 'bar'], 'baz'],
+    ];
+  }
+
+  /**
+   * @covers ::getDerivativeDefinition
+   * @dataProvider providerGetDerivativeDefinition
+   */
+  public function testGetDerivativeDefinition($derivatives, $derivative_id) {
+    // Mock DeriverBase
+    $mock_deriver_base = $this->getMockBuilder('Drupal\Component\Plugin\Derivative\DeriverBase')
+      ->setMethods(array('getDerivativeDefinitions'))
+      ->getMockForAbstractClass();
+    // Poke ::$derivatives
+    $ref_derivatives = new \ReflectionProperty($mock_deriver_base, 'derivatives');
+    $ref_derivatives->setAccessible(TRUE);
+    $ref_derivatives->setValue($mock_deriver_base, $derivatives);
+
+    // Set up expectations for getDerivativeDefinitions(). Different
+    // expectations depending on whether $derivatives[$derivative_id] is set.
+    // We don't need to set it's return value.
+    $mock_deriver_base->expects($this->exactly(
+        (!empty($derivatives) && !empty($derivatives[$derivative_id])) ? 0 : 1
+      ))
+      ->method('getDerivativeDefinitions');
+
+    // Exercise getDerivativeDefinition(). The $base_plugin_definition parameter
+    // doesn't change code flow so we can just send a constant.
+    $this->assertEquals(
+      $derivatives[$derivative_id],
+      $mock_deriver_base->getDerivativeDefinition($derivative_id, 'base_plugin_definition')
+    );
+
+  }
+
+}
