diff --git a/core/modules/field/tests/modules/field_computed_test/field_computed_test.info.yml b/core/modules/field/tests/modules/field_computed_test/field_computed_test.info.yml
new file mode 100644
index 0000000..42f6216
--- /dev/null
+++ b/core/modules/field/tests/modules/field_computed_test/field_computed_test.info.yml
@@ -0,0 +1,6 @@
+name: 'Field Computed Test'
+type: module
+description: 'Support module for the computed field tests.'
+core: 8.x
+package: Testing
+version: VERSION
diff --git a/core/modules/field/tests/modules/field_computed_test/src/Plugin/Field/FieldFormatter/DiceDefaultFormatter.php b/core/modules/field/tests/modules/field_computed_test/src/Plugin/Field/FieldFormatter/DiceDefaultFormatter.php
new file mode 100644
index 0000000..d1cfdf6
--- /dev/null
+++ b/core/modules/field/tests/modules/field_computed_test/src/Plugin/Field/FieldFormatter/DiceDefaultFormatter.php
@@ -0,0 +1,35 @@
+<?php
+
+namespace Drupal\field_computed_test\Plugin\Field\FieldFormatter;
+
+use Drupal\Core\Field\FieldItemListInterface;
+use Drupal\Core\Field\FormatterBase;
+
+/**
+ * Plugin implementation of the 'field_test_default' formatter.
+ *
+ * @FieldFormatter(
+ *   id = "dice_default",
+ *   label = @Translation("Default"),
+ *   description = @Translation("Default dice formatter"),
+ *   field_types = {
+ *     "dice"
+ *   },
+ * )
+ */
+class DiceDefaultFormatter extends FormatterBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function viewElements(FieldItemListInterface $items) {
+    $elements = array();
+
+    foreach ($items as $delta => $item) {
+      $elements[$delta] = array('#markup' => $item->value);
+    }
+
+    return $elements;
+  }
+
+}
diff --git a/core/modules/field/tests/modules/field_computed_test/src/Plugin/Field/FieldType/DiceFieldItem.php b/core/modules/field/tests/modules/field_computed_test/src/Plugin/Field/FieldType/DiceFieldItem.php
new file mode 100644
index 0000000..f18782f
--- /dev/null
+++ b/core/modules/field/tests/modules/field_computed_test/src/Plugin/Field/FieldType/DiceFieldItem.php
@@ -0,0 +1,37 @@
+<?php
+
+namespace Drupal\field_computed_test\Plugin\Field\FieldType;
+
+use Drupal\Core\Field\FieldItemBase;
+use Drupal\Core\Field\FieldStorageDefinitionInterface;
+use Drupal\Core\TypedData\DataDefinition;
+
+/**
+ * Defines the 'path' entity field type.
+ *
+ * @FieldType(
+ *   id = "dice",
+ *   label = @Translation("Dice"),
+ *   description = @Translation("A entity field containing dice results."),
+ *   default_widget = "dice_default",
+ *   list_class = "\Drupal\field_computed_test\Plugin\Field\FieldType\DiceFieldItemList"
+ * )
+ */
+class DiceFieldItem extends FieldItemBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  public static function propertyDefinitions(FieldStorageDefinitionInterface $field_definition) {
+    $properties['value'] = DataDefinition::create('integer')
+      ->setLabel(t('Value'));
+    return $properties;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public static function schema(FieldStorageDefinitionInterface $field_definition) {
+    return array('columns' => []);
+  }
+}
diff --git a/core/modules/field/tests/modules/field_computed_test/src/Plugin/Field/FieldType/DiceFieldItemList.php b/core/modules/field/tests/modules/field_computed_test/src/Plugin/Field/FieldType/DiceFieldItemList.php
new file mode 100644
index 0000000..2e9ea47
--- /dev/null
+++ b/core/modules/field/tests/modules/field_computed_test/src/Plugin/Field/FieldType/DiceFieldItemList.php
@@ -0,0 +1,24 @@
+<?php
+
+namespace Drupal\field_computed_test\Plugin\Field\FieldType;
+
+use Drupal\Core\Field\FieldItemList;
+
+/**
+ * Represents a configurable dice result.
+ */
+class DiceFieldItemList extends FieldItemList {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getValue($include_computed = FALSE) {
+    $items_count = $this->getParent()->getValue()->field_dice_count->value;
+    $values = array();
+    foreach (range(0, $items_count - 1) as $delta) {
+      $values[$delta] = rand(1, 6);
+    }
+    return $values;
+  }
+
+}
