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.
- A composert telepíted (innen: https://getcomposer.org/Composer-Setup.exe )
- A parancssorban kiadod composer init parancsot
- A könyvtárban létre kell hozni egy phpunit.xml fájlt ezzel a tartalommal:
<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