diff --git a/core/modules/system/tests/modules/entity_test/entity_test.views.inc b/core/modules/system/tests/modules/entity_test/entity_test.views.inc
index 4e348b0..5e3975b 100644
--- a/core/modules/system/tests/modules/entity_test/entity_test.views.inc
+++ b/core/modules/system/tests/modules/entity_test/entity_test.views.inc
@@ -74,64 +74,7 @@ function entity_test_views_data() {
     );
   }
 
-  $data['entity_test_property_data']['table']['join']['entity_test'] = array(
-    'left_field' => 'id',
-    'field' => 'id',
-  );
-
-  $data['entity_test_property_data']['id'] = array(
-    'title' => t('ID'),
-    'help' => t('The {entity_test}.id of the test entity.'),
-    'argument' => array(
-      'id' => 'numeric',
-    ),
-    'field' => array(
-      'id' => 'numeric',
-    ),
-    'filter' => array(
-      'id' => 'numeric',
-    ),
-    'sort' => array(
-      'id' => 'standard',
-    ),
-  );
-
-  if (module_exists('langcode')) {
-    $data['entity_test_property_data']['langcode'] = array(
-      'title' => t('Language'),
-      'help' => t('The {language}.langcode of this variant of this test entity.'),
-      'field' => array(
-        'id' => 'language',
-      ),
-      'filter' => array(
-        'id' => 'language',
-      ),
-      'argument' => array(
-        'id' => 'language',
-      ),
-      'sort' => array(
-        'id' => 'standard',
-      ),
-    );
-    $data['entity_test_property_data']['default_langcode'] = array(
-      'title' => t('Default langcode'),
-      'help' => t('Boolean indicating whether the current variant is in the original entity language.'),
-      'field' => array(
-        'id' => 'boolean',
-      ),
-      'filter' => array(
-        'id' => 'boolean',
-      ),
-      'argument' => array(
-        'id' => 'numeric',
-      ),
-      'sort' => array(
-        'id' => 'standard',
-      ),
-    );
-  }
-
-  $data['entity_test_property_data']['name'] = array(
+  $data['entity_test']['name'] = array(
     'title' => t('Name'),
     'help' => t('The name of the test entity.'),
     'field' => array(
@@ -148,7 +91,7 @@ function entity_test_views_data() {
     ),
   );
 
-  $data['entity_test_property_data']['user_id'] = array(
+  $data['entity_test']['user_id'] = array(
     'title' => t('Name'),
     'help' => t('The name of the test entity.'),
     'field' => array(
diff --git a/core/modules/views/lib/Drupal/views/Tests/QueryGroupByTest.php b/core/modules/views/lib/Drupal/views/Tests/QueryGroupByTest.php
index 92bb8ce..8d38134 100644
--- a/core/modules/views/lib/Drupal/views/Tests/QueryGroupByTest.php
+++ b/core/modules/views/lib/Drupal/views/Tests/QueryGroupByTest.php
@@ -2,7 +2,7 @@
 
 /**
  * @file
- * Definition of Drupal\views\Tests\QueryGroupByTest.
+ * Contains \Drupal\views\Tests\QueryGroupByTest.
  */
 
 namespace Drupal\views\Tests;
@@ -10,7 +10,7 @@
 /**
  * Tests aggregate functionality of views, for example count.
  */
-class QueryGroupByTest extends ViewTestBase {
+class QueryGroupByTest extends ViewUnitTestBase {
 
   /**
    * Views used by this test.
@@ -19,6 +19,20 @@ class QueryGroupByTest extends ViewTestBase {
    */
   public static $testViews = array('test_group_by_in_filters', 'test_aggregate_count', 'test_group_by_count');
 
+  /**
+   * Modules to enable.
+   *
+   * @var array
+   */
+  public static $modules = array('entity_test', 'system', 'field');
+
+  /**
+   * The storage controller for the test entity type.
+   *
+   * @var \Drupal\Core\Entity\DatabaseStorageController
+   */
+  public $storageController;
+
   public static function getInfo() {
     return array(
       'name' => 'Groupby',
@@ -28,27 +42,22 @@ public static function getInfo() {
   }
 
   /**
-   * Tests aggregate count feature.
+   * {@inheritdoc}
    */
-  public function testAggregateCount() {
-    // Create 2 nodes of type1 and 3 nodes of type2
-    $type1 = $this->drupalCreateContentType();
-    $type2 = $this->drupalCreateContentType();
+  protected function setUp() {
+    parent::setUp();
 
-    $node_1 = array(
-      'type' => $type1->type,
-    );
-    $this->drupalCreateNode($node_1);
-    $this->drupalCreateNode($node_1);
-    $this->drupalCreateNode($node_1);
-    $this->drupalCreateNode($node_1);
+    $this->installSchema('entity_test', array('entity_test'));
 
-    $node_2 = array(
-      'type' => $type2->type,
-    );
-    $this->drupalCreateNode($node_2);
-    $this->drupalCreateNode($node_2);
-    $this->drupalCreateNode($node_2);
+    $this->storageController = $this->container->get('plugin.manager.entity')->getStorageController('entity_test');
+  }
+
+
+  /**
+   * Tests aggregate count feature.
+   */
+  public function testAggregateCount() {
+    $this->setupTestEntities();
 
     $view = views_get_view('test_aggregate_count');
     $this->executeView($view);
@@ -57,87 +66,106 @@ public function testAggregateCount() {
 
     $types = array();
     foreach ($view->result as $item) {
-      // num_records is a alias for nid.
-      $types[$item->node_field_data_type] = $item->num_records;
+      // num_records is a alias for id.
+      $types[$item->entity_test_name] = $item->num_records;
     }
 
-    $this->assertEqual($types[$type1->type], 4);
-    $this->assertEqual($types[$type2->type], 3);
+    $this->assertEqual($types['name1'], 4, 'Groupby the name: name1 returned the expected amount of results.');
+    $this->assertEqual($types['name2'], 3, 'Groupby the name: name2 returned the expected amount of results.');
   }
 
-  //public function testAggregateSum() {
-  //}
-
   /**
-   * @param $group_by
-   *   Which group_by function should be used, for example sum or count.
+   * Provides a test helper which runs a view with some aggregation function.
+   *
+   * @param string $aggregation_function
+   *   Which aggregation function should be used, for example sum or count.
+   * @param array $values
+   *   The expected views result.
    */
-  function GroupByTestHelper($group_by, $values) {
-    // Create 2 nodes of type1 and 3 nodes of type2
-    $type1 = $this->drupalCreateContentType();
-    $type2 = $this->drupalCreateContentType();
-
-    $node_1 = array(
-      'type' => $type1->type,
-    );
-    // Nids from 1 to 4.
-    $this->drupalCreateNode($node_1);
-    $this->drupalCreateNode($node_1);
-    $this->drupalCreateNode($node_1);
-    $this->drupalCreateNode($node_1);
-    $node_2 = array(
-      'type' => $type2->type,
-    );
-    // Nids from 5 to 7.
-    $this->drupalCreateNode($node_2);
-    $this->drupalCreateNode($node_2);
-    $this->drupalCreateNode($node_2);
+  public function groupByTestHelper($aggregation_function, $values) {
+    $this->setupTestEntities();
 
     $view = views_get_view('test_group_by_count');
     $view->setDisplay();
-    $view->displayHandlers->get('default')->options['fields']['nid']['group_type'] = $group_by;
+    $view->displayHandlers->get('default')->options['fields']['id']['group_type'] = $aggregation_function;
     $this->executeView($view);
 
     $this->assertEqual(count($view->result), 2, 'Make sure the count of items is right.');
-    // Group by nodetype to identify the right count.
+    // Group by name to identify the right count.
+    $results = array();
     foreach ($view->result as $item) {
-      $results[$item->node_field_data_type] = $item->nid;
+      $results[$item->entity_test_name] = $item->id;
     }
-    $this->assertEqual($results[$type1->type], $values[0]);
-    $this->assertEqual($results[$type2->type], $values[1]);
+    $this->assertEqual($results['name1'], $values[0], format_string('Aggregation with @aggregation_function and groupby name: name1 returned the expected amount of results', array('@aggregation_function' => $aggregation_function)));
+    $this->assertEqual($results['name2'], $values[1], format_string('Aggregation with @aggregation_function and groupby name: name2 returned the expected amount of results', array('@aggregation_function' => $aggregation_function)));
+  }
+
+  /**
+   * Helper method that creates some test entities.
+   */
+  protected function setupTestEntities() {
+    // Create 4 entities with name1 and 3 nodes with name2.
+    $entity_1 = array(
+      'name' => 'name1',
+    );
+
+    $this->storageController->create($entity_1)->save();
+    $this->storageController->create($entity_1)->save();
+    $this->storageController->create($entity_1)->save();
+    $this->storageController->create($entity_1)->save();
+
+    $entity_2 = array(
+      'name' => 'name2',
+    );
+    $this->storageController->create($entity_2)->save();
+    $this->storageController->create($entity_2)->save();
+    $this->storageController->create($entity_2)->save();
   }
 
+  /**
+   * Tests the count aggregation function.
+   */
   public function testGroupByCount() {
-    $this->GroupByTestHelper('count', array(4, 3));
+    $this->groupByTestHelper('count', array(4, 3));
   }
 
-  function testGroupBySum() {
-    $this->GroupByTestHelper('sum', array(10, 18));
+  /**
+   * Tests the sum aggregation function.
+   */
+  public function testGroupBySum() {
+    $this->groupByTestHelper('sum', array(10, 18));
   }
 
-  function testGroupByAverage() {
-    $this->GroupByTestHelper('avg', array(2.5, 6));
+  /**
+   * Tests the average aggregation function.
+   */
+  public function testGroupByAverage() {
+    $this->groupByTestHelper('avg', array(2.5, 6));
   }
 
-  function testGroupByMin() {
-    $this->GroupByTestHelper('min', array(1, 5));
+  /**
+   * Tests the min aggregation function.
+   */
+  public function testGroupByMin() {
+    $this->groupByTestHelper('min', array(1, 5));
   }
 
-  function testGroupByMax() {
-    $this->GroupByTestHelper('max', array(4, 7));
+  /**
+   * Tests the max aggregation function.
+   */
+  public function testGroupByMax() {
+    $this->groupByTestHelper('max', array(4, 7));
   }
 
+  /**
+   * Tests groupby with filters.
+   */
   public function testGroupByCountOnlyFilters() {
     // Check if GROUP BY and HAVING are included when a view
     // Doesn't display SUM, COUNT, MAX... functions in SELECT statment
 
-    $type1 = $this->drupalCreateContentType();
-
-    $node_1 = array(
-      'type' => $type1->type,
-    );
     for ($x = 0; $x < 10; $x++) {
-      $this->drupalCreateNode($node_1);
+      $this->storageController->create(array('name' => 'name1'))->save();
     }
 
     $view = views_get_view('test_group_by_in_filters');
diff --git a/core/modules/views/lib/Drupal/views/Tests/ViewUnitTestBase.php b/core/modules/views/lib/Drupal/views/Tests/ViewUnitTestBase.php
index 134b97a..ba3a6aa 100644
--- a/core/modules/views/lib/Drupal/views/Tests/ViewUnitTestBase.php
+++ b/core/modules/views/lib/Drupal/views/Tests/ViewUnitTestBase.php
@@ -222,6 +222,7 @@ protected function executeView($view, $args = array()) {
     $view->setDisplay();
     $view->preExecute($args);
     $view->execute();
+    $this->verbose('<pre>Executed view: ' . ((string) $view->build_info['query']) . '</pre>');
   }
 
   /**
diff --git a/core/modules/views/tests/views_test_config/test_views/views.view.test_aggregate_count.yml b/core/modules/views/tests/views_test_config/test_views/views.view.test_aggregate_count.yml
index 9581654..686a550 100644
--- a/core/modules/views/tests/views_test_config/test_views/views.view.test_aggregate_count.yml
+++ b/core/modules/views/tests/views_test_config/test_views/views.view.test_aggregate_count.yml
@@ -1,4 +1,4 @@
-base_table: node
+base_table: entity_test
 core: '8'
 description: ''
 status: '1'
@@ -8,21 +8,21 @@ display:
       access:
         type: none
       arguments:
-        type:
+        name:
           default_action: summary
           default_argument_type: fixed
-          field: type
-          id: type
+          field: name
+          id: name
           summary:
             format: default_summary
-          table: node_field_data
-          plugin_id: node_type
+          table: entity_test
+          plugin_id: string
       cache:
         type: none
       exposed_form:
         type: basic
       fields:
-        nid:
+        id:
           alter:
             alter_text: '0'
             ellipsis: '1'
@@ -32,12 +32,12 @@ display:
             trim: '0'
             word_boundary: '1'
           empty_zero: '0'
-          field: title
+          field: id
           hide_empty: '0'
-          id: nid
+          id: id
           link_to_node: '0'
-          table: node
-          plugin_id: node
+          table: entity_test
+          plugin_id: numeric
       group_by: '1'
       pager:
         type: some
diff --git a/core/modules/views/tests/views_test_config/test_views/views.view.test_group_by_count.yml b/core/modules/views/tests/views_test_config/test_views/views.view.test_group_by_count.yml
index c69fb29..f16877c 100644
--- a/core/modules/views/tests/views_test_config/test_views/views.view.test_group_by_count.yml
+++ b/core/modules/views/tests/views_test_config/test_views/views.view.test_group_by_count.yml
@@ -1,4 +1,4 @@
-base_table: node
+base_table: entity_test
 core: '8'
 description: ''
 status: '1'
@@ -12,7 +12,7 @@ display:
       exposed_form:
         type: basic
       fields:
-        nid:
+        id:
           alter:
             alter_text: '0'
             ellipsis: '1'
@@ -22,14 +22,13 @@ display:
             trim: '0'
             word_boundary: '1'
           empty_zero: '0'
-          field: nid
+          field: id
           group_type: {  }
           hide_empty: '0'
-          id: nid
-          link_to_node: '0'
-          table: node
-          plugin_id: node
-        type:
+          id: id
+          table: entity_test
+          plugin_id: numeric
+        name:
           alter:
             alter_text: '0'
             ellipsis: '1'
@@ -39,12 +38,11 @@ display:
             trim: '0'
             word_boundary: '1'
           empty_zero: '0'
-          field: type
+          field: name
           hide_empty: '0'
-          id: type
-          link_to_node: '0'
-          table: node_field_data
-          plugin_id: node_type
+          id: name
+          table: entity_test
+          plugin_id: standard
       group_by: '1'
       pager:
         type: some
diff --git a/core/modules/views/tests/views_test_config/test_views/views.view.test_group_by_in_filters.yml b/core/modules/views/tests/views_test_config/test_views/views.view.test_group_by_in_filters.yml
index 753dd4c..671b656 100644
--- a/core/modules/views/tests/views_test_config/test_views/views.view.test_group_by_in_filters.yml
+++ b/core/modules/views/tests/views_test_config/test_views/views.view.test_group_by_in_filters.yml
@@ -1,4 +1,4 @@
-base_table: node
+base_table: entity_test
 core: '8'
 description: ''
 status: '1'
@@ -12,7 +12,7 @@ display:
       exposed_form:
         type: basic
       fields:
-        type:
+        name:
           alter:
             alter_text: '0'
             ellipsis: '1'
@@ -22,19 +22,18 @@ display:
             trim: '0'
             word_boundary: '1'
           empty_zero: '0'
-          field: type
+          field: name
           hide_empty: '0'
-          id: type
-          link_to_node: '0'
-          table: node_field_data
-          plugin_id: node_type
+          id: name
+          table: entity_test
+          plugin_id: standard
       filters:
-        nid:
-          field: nid
+        id:
+          field: id
           group_type: count
-          id: nid
+          id: id
           operator: '>'
-          table: node
+          table: entity_test
           value:
             value: '3'
           plugin_id: numeric
