Testiranje Drupal 8 modula
Deo VI praktičnog vodiča za kreiranje osnovnih Drupal 8 modula
Od .info do testova, samo osnove
Ako ste od samog početka pratili ovaj praktični vodič za kreiranje osnovnih Drupal 8 modula, sada smo spremni za određeni kvalitet kontrole. Ako jednostavno želite da se odmah igrate, možete preuzeti Lorem ipsum modul
Hajde da proverimo da li modul radi kako treba pisanjem nekoliko sopstvenih testova koje možete pokrenuti direktno kroz Drupal.
/tests/src/Functional/LoremIpsumTest.php
<?php namespace Drupal\Tests\loremipsum\Functional; use Drupal\Tests\BrowserTestBase; /** * Testovi za Lorem Ipsum modul. * * @group loremipsum */ class LoremIpsumTests extends BrowserTestBase { /** * Moduli koji se instaliraju. * * @var array */ protected static $modules = array('loremipsum'); /** * Jednostavan korisnik. * * @var \Drupal\user\Entity\User */ private $user; /** * Izvršava početna podešavanja pre svakog test metoda. */ public function setUp() { parent::setUp(); $this->user = $this->drupalCreateUser(array( 'administer site configuration', 'generate lorem ipsum', )); } }
Testiranje počinje proširenjem klase BrowserTestBase. Važno je istaći da Drupal pokreće testove u test bazi podataka, koja se kreira, popunjava po potrebi i potom uništava. To znači da možete testirati u razvojnom, testnom pa čak i — ako se usudite! — produkcionom okruženju.
Kao što vidite gore, prvi korak za testove je izvršavanje početne konfiguracije tako što definišete koje module testirati (samo pravu stvar), kreirate test korisnika i dodeljujete mu potrebna dopuštenja.
Zatim testiramo pristup lažnoj stranici za generisanje teksta:
/** * Testira da li se Lorem ipsum stranica može dohvatiti. */ public function testLoremIpsumPageExists() { // Prijava. $this->drupalLogin($this->user); // Test generatora: $this->drupalGet('loremipsum/generate/4/20'); $this->assertSession()->statusCodeEquals(200); }
I konfiguracionu formu:
/** * Testira konfiguracionu formu. */ public function testConfigForm() { // Prijava. $this->drupalLogin($this->user); // Pristup stranici za konfiguraciju. $this->drupalGet('admin/config/development/loremipsum'); $this->assertSession()->statusCodeEquals(200); // Testira da li elementi forme postoje i imaju podrazumevane vrednosti. $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'), );
Zatim testiramo podnošenje konfiguracione forme:
// Testiraj slanje forme. $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.');
I proveravamo da li su nove vrednosti sačuvane:
// Testiraj da li su nove vrednosti prisutne. $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", ); } }
Za pokretanje testova:
1. Uključite CORE module: Testing i Development: Lorem ipsum
2. Idite na admin/config/development/testing
3. Izaberite test „Loremipsum“
4. Kliknite na „Run tests“ (Pokreni testove)
To je sve za ovaj čas! Ako želite, preuzmite kopiju ovog koda sa stranice projekta Lorem ipsum — imajte na umu da u trenutnoj verziji postoji ugrađena tematika. Takođe, ako imate bilo kakvih pitanja, slobodno mi pišite. Srećno sa kodiranjem!
Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.