PHPUnit használata

Az Unit tesztelést akkor kell használni, amikor:

  • Egy fejlesztő az általa megalkotott kódot minden fejlesztési fázis után tesztelni akarja.
  • Amikor egy osztályt vagy egy osztály egy metódusának a működését akarod tesztelni, akkor kell egy tesztet írni, amelyben meghatározod, hogy milyen bemeneti adatokat adsz meg a kódnak és azt is, hogy milyen kimeneti adatokat vársz el.
  • A unit teszt tulajdonképpen a megfelelő bemenő paraméterekkel ellenőrzi, hogy az elvárthoz képest milyen kimenetet ad a tesztelt környezet.
  • Miniden fejlesztés után le kell futtatni a unitteszteket, amelyek ellenőrzik, hogy a megfelelő adatok a megfelelő viselkedést mutatják.

Eddig az általános leírás. Innentől a PHPUnit teszt környezetről lesz szó. Az utóbbi időben átszoktam a Visual Studio Code (=VSC) fejlesztő környezetre, ezért ebben a környezetben írom le.

A VSC projektekben gondolkozik. Egy könyvtárstruktúra az egy projekt. A projekt gyökérkönyvtárában dolgozol.

	<phpunit colors="true" bootstrap="vendor/autoload.php">
    	<testsuites>
    	    <testsuite name=”Minta Tesztek">
    	        <directory>tests</directory>
    	    </testsuite>
    	</testsuites>
	</phpunit>
  • Kiadod az alábbi parancsot: composer require phpunit/phpunit
  • Létrehozod a gyökérkönyvtáron belül az <gyoker>/src könyvtárban - a bootstrap.php fájlt és abba beírod az alábbi sorokat...
<?php
require_once __DIR__.”/../vendor/autoload.php”;
…Innen a többi kód
  • Létrehozod a tests könyvtárat a gyökérben: <gyökér>/tests 
  • A tests könyvtárban tetszőleges osztály / osztályokat hozol létre. az osztály neve és a php fájl nevének ugyanannak kell lennie. Pl. 
  • ValamiTest.php

    <?php
    use PHPUnit\Framework\TestCase;
    require "./src/bootstrap.php"
    .... további szükséges include-ok vagy requestek, esetleg konfigurációs állományok ...
    
    // A test osztály leírása
    class ValamiTest extends TestCase{
    	// A teszt osztályban lévő metódusok egy-egy teszt metódust jelentenek. 
    	// Minden tesztelésre használandó metódus nevének a test szóval kell kezdődnie.
    	function testLogin(){
    	.....
    	}
    	// Tesztosztály egyes teszt metódusai az osztály változókon keresztül tudnak kommunikálni.
    	
    }
  • A unit tesztelés indításához a projekt gyökerében parancssorban ki kell adni az alábbi parancsot: ./vendor/bin/phpunit