logo

Extra Block Types (EBT) - Nieuwe Layout Builder ervaring❗

Extra Block Types (EBT) - gestileerde, aanpasbare bloktypes: Slideshows, Tabs, Cards, Accordions en vele andere. Ingebouwde instellingen voor achtergrond, DOM Box, javascript-plugins. Ervaar vandaag al de toekomst van layout building.

Demo EBT-modules Download EBT-modules

❗Extra Paragraph Types (EPT) - Nieuwe Paragraphs ervaring

Extra Paragraph Types (EPT) - analoge op paragrafen gebaseerde set modules.

Demo EPT-modules Download EPT-modules

Scroll

Testen van een Drupal 8-module

03/10/2025, by Ivan

Menu

Deel VI van de praktische handleiding voor het maken van basis Drupal 8-modules
Van .info tot tests, alleen de basis

Als u vanaf het begin deze praktische handleiding voor het maken van basis Drupal 8-modules hebt gevolgd, zijn we nu klaar voor wat kwaliteitscontrole. Als u gewoon wilt meedoen, kunt u de Lorem ipsum-module direct vanaf Drupal downloaden.

Laten we controleren of de module correct werkt door een paar eigen tests te schrijven die via Drupal zelf kunnen worden uitgevoerd.

/tests/src/Functional/LoremIpsumTest.php

<?php

namespace Drupal\Tests\loremipsum\Functional;

use Drupal\Tests\BrowserTestBase;

/**
 * Tests for the Lorem Ipsum module.
 *
 * @group loremipsum
 */
class LoremIpsumTests extends BrowserTestBase {

  /**
   * Modules to install.
   *
   * @var array
   */
  protected static $modules = array('loremipsum');

  /**
   * A simple user.
   *
   * @var \Drupal\user\Entity\User
   */
  private $user;

  /**
   * Perform initial setup tasks that run before every test method.
   */
  public function setUp() {
    parent::setUp();
    $this->user = $this->drupalCreateUser(array(
      'administer site configuration',
      'generate lorem ipsum',
    ));
  }
}

Testen begint met het uitbreiden van de klasse BrowserTestBase. Belangrijk om te weten is dat Drupal tests uitvoert in een testdatabase, die wordt aangemaakt, gevuld wanneer nodig en daarna vernietigd. Dit betekent dat u kunt testen op ontwikkel-, staging- en zelfs — als u dat aandurft! — productieomgevingen.

Zoals u hierboven kunt zien, bestaat de eerste stap bij tests uit het uitvoeren van enige initiële setup: het definiëren van de modules die moeten worden getest (alleen de relevante), het aanmaken van een testgebruiker en het geven van de nodige rechten.

Vervolgens testen we de toegang tot de voorbeeldpagina voor tekstgeneratie:

/**
   * Tests that the Lorem ipsum page can be reached.
   */
  public function testLoremIpsumPageExists() {
    // Login.
    $this->drupalLogin($this->user);

    // Generator test:
    $this->drupalGet('loremipsum/generate/4/20');
    $this->assertSession()->statusCodeEquals(200);
  }

En het configuratieformulier:

  /**
   * Tests the config form.
   */
  public function testConfigForm() {
    // Login.
    $this->drupalLogin($this->user);

    // Access config page.
    $this->drupalGet('admin/config/development/loremipsum');
    $this->assertSession()->statusCodeEquals(200);
    // Test the form elements exist and have defaults.
    $config = $this->config('loremipsum.settings');
    $this->assertSession()->fieldValueEquals(
      'page_title',
      $config->get('loremipsum.page_title'),
    );
    $this->assertSession()->fieldValueEquals(
      'source_text',
      $config->get('loremipsum.source_text'),
    );

Daarna testen we of het configuratieformulier kan worden verzonden:

   // Test form submission.
    $this->drupalPostForm(NULL, array(
      'page_title' => 'Test lorem ipsum',
      'source_text' => 'Test phrase 1 \nTest phrase 2 \nTest phrase 3 \n',
    ), t('Save configuration'));
    $this->assertSession()->pageTextContains('The configuration options have been saved.');

En controleren we of de nieuwe waarden aanwezig zijn:

    // Test the new values are there.
    $this->drupalGet('admin/config/development/loremipsum');
    $this->assertSession()->statusCodeEquals(200);
    $this->assertSession()->fieldValueEquals(
      'page_title',
      'Test lorem ipsum',
    );
    $this->assertSession()->fieldValueEquals(
      'source_text',
      'Test phrase 1 \nTest phrase 2 \nTest phrase 3 \n',
    );
  }

}

Om de tests uit te voeren:
1. Schakel de CORE-modules in: Testing en Development: Lorem ipsum
2. Ga naar admin/config/development/testing
3. Selecteer de test “Loremipsum”
4. Klik op “Tests uitvoeren”

En dat is alles voor deze les! Als u wilt, kunt u een kopie van deze code bekijken op de projectpagina van Lorem ipsum — houd er rekening mee dat in de huidige ontwikkelversie ingebouwde thematische elementen aanwezig zijn. Als u verder nog vragen hebt, aarzel niet om me te schrijven. Veel succes met coderen!