diff --git a/core/modules/system/lib/Drupal/system/Tests/Entity/EntityAccessTest.php b/core/modules/system/lib/Drupal/system/Tests/Entity/EntityAccessTest.php
index 6b0379f..3ec0f33 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Entity/EntityAccessTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Entity/EntityAccessTest.php
@@ -15,7 +15,7 @@
 /**
  * Tests the entity access controller.
  */
-class EntityAccessTest extends EntityUnitBaseTest  {
+class EntityAccessTest extends EntityUnitTestBase  {
 
   public static $modules = array('language', 'locale');
 
@@ -62,7 +62,10 @@ function assertEntityAccess($ops, AccessibleInterface $object, User $account = N
   function testEntityAccess() {
     // Set up a non-admin user that is allowed to view test entities.
     global $user;
-    $user = $this->createUser(array('uid' => 2), array('view test entity'));
+    $role = $this->createUserRole(array('view test entity'));
+    $user = $this->createUser(array('uid' => 2));
+    $user->roles[$role->id()] = $role->id();
+    $user->save();
     $entity = entity_create('entity_test', array(
       'name' => 'test',
     ));
@@ -110,7 +113,10 @@ function testEntityTranslationAccess() {
 
     // Set up a non-admin user that is allowed to view test entity translations.
     global $user;
-    $user = $this->createUser(array('uid' => 2), array('view test entity translations'));
+    $role = $this->createUserRole(array('view test entity translations'));
+    $user = $this->createUser(array('uid' => 2));
+    $user->roles[$role->id()] = $role->id();
+    $user->save();
 
     // Create two test languages.
     foreach (array('foo', 'bar') as $langcode) {
diff --git a/core/modules/system/lib/Drupal/system/Tests/Entity/EntityApiTest.php b/core/modules/system/lib/Drupal/system/Tests/Entity/EntityApiTest.php
index 30c5025..1a8947c 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Entity/EntityApiTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Entity/EntityApiTest.php
@@ -12,7 +12,7 @@
 /**
  * Tests the basic Entity API.
  */
-class EntityApiTest extends EntityUnitBaseTest {
+class EntityApiTest extends EntityUnitTestBase {
 
   public static function getInfo() {
     return array(
diff --git a/core/modules/system/lib/Drupal/system/Tests/Entity/EntityCrudHookTest.php b/core/modules/system/lib/Drupal/system/Tests/Entity/EntityCrudHookTest.php
index a1f2dc9..67f190e 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Entity/EntityCrudHookTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Entity/EntityCrudHookTest.php
@@ -21,7 +21,7 @@
  * As well as all type-specific hooks, like hook_node_insert(),
  * hook_comment_update(), etc.
  */
-class EntityCrudHookTest extends EntityUnitBaseTest {
+class EntityCrudHookTest extends EntityUnitTestBase {
 
   /**
    * Modules to enable.
diff --git a/core/modules/system/lib/Drupal/system/Tests/Entity/EntityFieldTest.php b/core/modules/system/lib/Drupal/system/Tests/Entity/EntityFieldTest.php
index 1fad798..3c5679b 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Entity/EntityFieldTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Entity/EntityFieldTest.php
@@ -15,7 +15,7 @@
 /**
  * Tests Entity API base functionality.
  */
-class EntityFieldTest extends EntityUnitBaseTest  {
+class EntityFieldTest extends EntityUnitTestBase  {
 
   /**
    * Modules to enable.
diff --git a/core/modules/system/lib/Drupal/system/Tests/Entity/EntityLabelTest.php b/core/modules/system/lib/Drupal/system/Tests/Entity/EntityLabelTest.php
index e2a93b0..097c7bc 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Entity/EntityLabelTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Entity/EntityLabelTest.php
@@ -10,7 +10,7 @@
 /**
  * Tests entity properties.
  */
-class EntityLabelTest extends EntityUnitBaseTest {
+class EntityLabelTest extends EntityUnitTestBase {
 
   public static function getInfo() {
     return array(
diff --git a/core/modules/system/lib/Drupal/system/Tests/Entity/EntityQueryAggregateTest.php b/core/modules/system/lib/Drupal/system/Tests/Entity/EntityQueryAggregateTest.php
index b957675..54c6934 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Entity/EntityQueryAggregateTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Entity/EntityQueryAggregateTest.php
@@ -12,18 +12,16 @@
 /**
  * Defines a test for testing aggregation support for entity query.
  *
- * @todo Use EntityUnitBaseTest provided by http://drupal.org/node/1893108.
- *
  * @see \Drupal\entity_test\Plugin\Core\Entity\EntityTest
  */
-class EntityQueryAggregateTest extends DrupalUnitTestBase {
+class EntityQueryAggregateTest extends EntityUnitTestBase {
 
   /**
    * Modules to enable.
    *
    * @var array
    */
-  public static $modules = array('user', 'system', 'field', 'number', 'text', 'field_sql_storage', 'entity_test');
+  public static $modules = array('number');
 
   /**
    * The entity_test storage controller to create the test entities.
@@ -54,13 +52,8 @@ public static function getInfo() {
     );
   }
 
-  protected function setUp() {
+  public function setUp() {
     parent::setUp();
-    $this->installSchema('user', 'users');
-    $this->installSchema('system', 'sequences');
-    $this->installSchema('field', 'field_config');
-    $this->installSchema('field', 'field_config_instance');
-    $this->installSchema('entity_test', 'entity_test');
 
     $this->entityStorageController = $this->container->get('plugin.manager.entity')->getStorageController('entity_test');
     $this->factory = $this->container->get('entity.query');
diff --git a/core/modules/system/lib/Drupal/system/Tests/Entity/EntityQueryRelationshipTest.php b/core/modules/system/lib/Drupal/system/Tests/Entity/EntityQueryRelationshipTest.php
index d5a9b98..434311c 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Entity/EntityQueryRelationshipTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Entity/EntityQueryRelationshipTest.php
@@ -10,7 +10,7 @@
 /**
  * Tests Entity Query API relationship functionality.
  */
-class EntityQueryRelationshipTest extends EntityUnitBaseTest  {
+class EntityQueryRelationshipTest extends EntityUnitTestBase  {
 
   /**
    * Modules to enable.
diff --git a/core/modules/system/lib/Drupal/system/Tests/Entity/EntityQueryTest.php b/core/modules/system/lib/Drupal/system/Tests/Entity/EntityQueryTest.php
index a2ece4a..ae51625 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Entity/EntityQueryTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Entity/EntityQueryTest.php
@@ -10,7 +10,7 @@
 /**
  * Tests the basic Entity API.
  */
-class EntityQueryTest extends EntityUnitBaseTest {
+class EntityQueryTest extends EntityUnitTestBase {
 
   /**
    * Modules to enable.
diff --git a/core/modules/system/lib/Drupal/system/Tests/Entity/EntityTranslationTest.php b/core/modules/system/lib/Drupal/system/Tests/Entity/EntityTranslationTest.php
index 40fbd15..cccdc5f 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Entity/EntityTranslationTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Entity/EntityTranslationTest.php
@@ -14,7 +14,7 @@
 /**
  * Tests entity translation.
  */
-class EntityTranslationTest extends EntityUnitBaseTest {
+class EntityTranslationTest extends EntityUnitTestBase {
 
   protected $langcodes;
 
diff --git a/core/modules/system/lib/Drupal/system/Tests/Entity/EntityUUIDTest.php b/core/modules/system/lib/Drupal/system/Tests/Entity/EntityUUIDTest.php
index 5110134..d7ca38d 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Entity/EntityUUIDTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Entity/EntityUUIDTest.php
@@ -12,7 +12,7 @@
 /**
  * Tests creation, saving, and loading of entity UUIDs.
  */
-class EntityUUIDTest extends EntityUnitBaseTest {
+class EntityUUIDTest extends EntityUnitTestBase {
 
   public static function getInfo() {
     return array(
diff --git a/core/modules/system/lib/Drupal/system/Tests/Entity/EntityUnitBaseTest.php b/core/modules/system/lib/Drupal/system/Tests/Entity/EntityUnitBaseTest.php
deleted file mode 100644
index 274724c..0000000
--- a/core/modules/system/lib/Drupal/system/Tests/Entity/EntityUnitBaseTest.php
+++ /dev/null
@@ -1,66 +0,0 @@
-<?php
-
-/**
- * @file
- * Contains \Drupal\system\Tests\Entity\EntityApiTest.
- */
-
-namespace Drupal\system\Tests\Entity;
-
-use Drupal\simpletest\DrupalUnitTestBase;
-
-/**
- * Defines an abstract test base for entity unit tests.
- */
-abstract class EntityUnitBaseTest extends DrupalUnitTestBase {
-
-  /**
-   * Modules to enable.
-   *
-   * @var array
-   */
-  public static $modules = array('user', 'system', 'field', 'text', 'field_sql_storage', 'entity_test');
-
-  public function setUp() {
-    parent::setUp();
-    $this->installSchema('user', 'users');
-    $this->installSchema('system', 'sequences');
-    $this->installSchema('field', array('field_config', 'field_config_instance'));
-    $this->installSchema('entity_test', 'entity_test');
-  }
-
-  /**
-   * Creates a user.
-   *
-   * @param array $values
-   *   (optional) The values used to create the entity.
-   * @param array $permissions
-   *   (optional) Array of permission names to assign to user. The
-   *   role_permission and users_roles tables must be installed before this can
-   *   be used.
-   *
-   * @return \Drupal\user\Plugin\Core\Entity\User
-   *   The created user entity.
-   */
-  protected function createUser($values = array(), $permissions = array()) {
-    if ($permissions) {
-      // Create a new role and apply permissions to it.
-      $role = entity_create('user_role', array(
-        'id' => strtolower($this->randomName(8)),
-        'label' => $this->randomName(8),
-      ));
-      $role->save();
-      user_role_grant_permissions($role->id(), $permissions);
-      $values['roles'][$role->id()] = $role->id();
-    }
-
-    $account = entity_create('user', $values + array(
-      'name' => $this->randomName(),
-      'status' => 1,
-    ));
-    $account->enforceIsNew();
-    $account->save();
-    return $account;
-  }
-
-}
diff --git a/core/modules/system/lib/Drupal/system/Tests/Entity/EntityUnitTestBase.php b/core/modules/system/lib/Drupal/system/Tests/Entity/EntityUnitTestBase.php
new file mode 100644
index 0000000..0fed4c8
--- /dev/null
+++ b/core/modules/system/lib/Drupal/system/Tests/Entity/EntityUnitTestBase.php
@@ -0,0 +1,79 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\system\Tests\Entity\EntityUnitTestBase.
+ */
+
+namespace Drupal\system\Tests\Entity;
+
+use Drupal\simpletest\DrupalUnitTestBase;
+
+/**
+ * Defines an abstract test base for entity unit tests.
+ */
+abstract class EntityUnitTestBase extends DrupalUnitTestBase {
+
+  /**
+   * Modules to enable.
+   *
+   * @var array
+   */
+  public static $modules = array('user', 'system', 'field', 'text', 'field_sql_storage', 'entity_test');
+
+  public function setUp() {
+    parent::setUp();
+    $this->installSchema('user', 'users');
+    $this->installSchema('system', 'sequences');
+    $this->installSchema('field', array('field_config', 'field_config_instance'));
+    $this->installSchema('entity_test', 'entity_test');
+  }
+
+  /**
+   * Creates a user.
+   *
+   * @param array $values
+   *   (optional) The values used to create the entity. To perform access checks
+   *   and prevent the new user from becoming uid 1 (which exempts from all user
+   *   access conditions), pass a unique value other than 1 as 'uid' in $values.
+   *
+   * @return \Drupal\user\Plugin\Core\Entity\User
+   *   The created user entity.
+   */
+  protected function createUser($values = array()) {
+    $account = entity_create('user', $values + array(
+      'name' => $this->randomName(),
+    ));
+    // Force the entity to be new, so that callers are able to specify
+    // a 'uid' in $values to skip over uid 1. If no uid is provided explicitly,
+    // \Drupal\user\UserStorageController will automatically choose and insert
+    // the next available ID.
+    $account->enforceIsNew();
+    $account->save();
+    return $account;
+  }
+
+  /**
+   * Creates a user role with provided permissions.
+   *
+   * The {role_permission} and {users_roles} tables must be installed before
+   * this can be used.
+   *
+   * @param array $permissions
+   *   List of permission names the role should have.
+   *
+   * @return \Drupal\user\Plugin\Core\Entity\Role
+   *   The created user entity.
+   */
+  protected function createUserRole($permissions) {
+    // Create a new role and apply permissions to it.
+    $role = entity_create('user_role', array(
+      'id' => strtolower($this->randomName(8)),
+      'label' => $this->randomName(8),
+    ));
+    $role->save();
+    user_role_grant_permissions($role->id(), $permissions);
+    return $role;
+  }
+
+}
diff --git a/core/modules/system/lib/Drupal/system/Tests/Entity/EntityUriTest.php b/core/modules/system/lib/Drupal/system/Tests/Entity/EntityUriTest.php
index 43ab362..0731272 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Entity/EntityUriTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Entity/EntityUriTest.php
@@ -10,7 +10,7 @@
 /**
  * Tests the basic Entity API.
  */
-class EntityUriTest extends EntityUnitBaseTest {
+class EntityUriTest extends EntityUnitTestBase {
 
   public static function getInfo() {
     return array(
