Alapjai az egység tesztelése php segítségével phpunit

Egy ismerős helyzet: ha egy alkalmazás fejlesztésén dolgozik, hogy megoldja a problémákat, és néha van egy olyan érzésem, hogy ha sétál egy kört. Általában egy hibát, és ha van egy másik. Néha az egyik, hogy már korrigált 30 perce, néha - új. Hibakeresés nagyon nehézzé válik, de van egy jó és könnyű kiutat ebből a helyzetből. Unit tesztek nem csak enyhíti a fájdalmat a fejlesztés, hanem segít, hogy írjon kódot, ami megkönnyíti a karbantartást és könnyebb megváltoztatni.

Ahhoz, hogy megértsük, milyen egység teszt, meg kell határozni a „modul”. Modul (egység) - része az alkalmazásának eredményeként a funkcionális működését, ami tudjuk ellenőrizni (vagy teszt). Unit tesztelés - ez valójában ellenőrizze, hogy a modul működik pontosan ozhidaetsya.Napisav, ha a vizsgálatok, amikor módosítja a kódot, akkor csak meg kell futtatni teszteket annak ellenőrzése, hogy minden rendben van. Így mindig biztos lehet abban, hogy a módosítások nem megtörni a rendszert.

Tévhitek egység tesztelése

Annak ellenére, hogy az összes előnyeit egység tesztelése, nem minden fejlesztő használja. Miért? Számos választ erre a kérdésre, de mindegyikük - nem túl jó kifogás. Tekintsük a leggyakoribb oka, és próbálja megérteni, hogy miért nem indokolt.

Írásban vizsgálatok túl sokáig tart

Nem kell teszt - és így a kód működik!

További igazolása fejlesztők, az alkalmazás fut - nincs szükség tesztelésre. Tudják, hogy a kérelmet, és tudja a hiányosságokat, és képes rögzíteni mindazt, ami szükséges, néha egy pár másodpercig. De elképzelhető, hogy ezzel egy új fejlesztő, akinek fogalma sincs, hogy a kódot alkalmazások fejlesztését. A kezdő lehet, hogy olyan változás, amely tönkreteheti semmit. Unit tesztek segítenek elkerülni az ilyen helyzeteket.

Ez érdektelen

És a másik ok, amiért a fejlesztők nem tetszik tesztek - ez érdekes. A fejlesztők a természet szeretnék megoldani a problémákat. Írás a kód - ez olyan, mint létrehozni valamit a semmiből, ami rendet a káosz, hogy valami hasznos. Ennek eredményeként a dolgozatírás válik unalmas ügy, olyan kérdés, amelyet meg lehet tenni, miután a fő munkát. És tesztelése háttérbe szorul. De nézd meg egy másik módja: elkapni egy csúnya hibát óra - is sajnos.

Kezdjük gyakorolni. A mi példát fogunk használni PHPUnit könyvtárban. A legegyszerűbb módja annak, hogy telepíteni PHPUnit - húzza csatorna körte.

Ha minden jól megy, az összes szükséges eszközök vannak telepítve. Ha szeretné telepíteni PHPUnit kézzel - talál utasításokat.

első teszt

Használata PHPUnit, akkor írja fel a vizsgálat osztályok, amelyek a vizsgálati módszerek, amelyek mindegyike kell felelnie a következő megállapodások:

  • A legtöbb esetben, akkor örökli egy osztály PHPUnit_Framework_TestCase. hogy kapsz hozzáférést a beépített módszerekkel, például setup () és tearDown ().
  • A név a vizsgálati osztály Test hozzáadásával alakul ki a szavakat a vizsgálati osztály nevét. Például, ha a tesztelt RemoteConnect osztályban. innen ered a neve a teszt - RemoteConnectTest.
  • Nevei vizsgálati módszerek mindig kezdeni a „teszt” (pl testDoesLikeWaffles ()). Módszerek nyilvánosnak kell lennie. Használhatja saját módszereket a vizsgálatokat, de nem a teszteket keresztül PHPUnit.
  • Vizsgálati módszerek nem veszik paramétereket. Meg kell írni, amennyire csak lehetséges vizsgálati módszerek független és önellátó. Néha ez kellemetlen, de kapsz egy tiszta és hatékony vizsgálatok.

Írja meg a kis osztály tesztelésére RemoteConnect.php:

Ha azt akarjuk, hogy teszteljék a funkcionalitás csatlakozni egy távoli szerverhez, akkor meg kell írni egy ilyen teszt:

A teszter osztály örökli az alap osztály PHPUnit, így és az összes szükséges funkciót. Az első két módszer - felépítése és bontása - egy példát erre beépített funkciókat. Ez a kiegészítő funkciók, amelyek egy részét minden teszt. Futnak futtatni a teszteket követően, ill. De most mi érdekli testConnectionIsValid módszer. Ez a módszer létrehoz egy objektum típusú RemoteConnect. és okoz connectToServer módszerrel.

Hívjuk másik kisegítő assertTrue funkció a tesztelés során. Ez a funkció határozza meg egy egyszerű nyilatkozatot (állítás): ellenőrzi, hogy az átadott érték igazság. Egyéb kiegészítő funkciók végzik ellenőrzi a tárgyak tulajdonságait, a fájl létezését, a jelenléte a kulcs a tömbben, vagy az annak megfelelő reguláris kifejezés. A mi esetünkben, szeretnénk, hogy megfelelő kapcsolat a távoli szerverre, azaz hogy connectToServer függvény igaz értékkel tér vissza.

A tesztek futtatása

Elvégzett tesztek egyszerűen hívja a parancsot phpunit mutatja a php fájlt vizsgálatok:

PHPUnit fut az összes tesztet és gyűjteni néhány statisztika: a sikeres tesztet, vagy sem, a vizsgálatok számát és állítások (állítások), és megjeleníti az egészet. O példa:

Minden egyes befejezett vizsgálati eredmény jelenik meg: „”. Ha a teszt sikeres volt, »F«, ha a teszt nem sikerül, »I«, ha a vizsgálatot nem lehet kitölteni, és az »S«, ha a vizsgálat átkerült.

Ebben a példában a teszt sikeresen befejeződött, akkor a vizsgált funkció működik. De ellenőrzés funkció csak a helyes működése nem elég, akkor is ellenőrizheti a működését akkor működik, ha helytelenül használják.

A PHPUnit biztosít egy sor alapvető vizsgálatok, amelyek felölelik a legtöbb lehetséges helyzetek. Persze, néha meg kell írni okos vizsgálatokat, hogy ellenőrizze a funkcionalitás a nem triviális alkalmazásokat. De főleg az alapfunkciók PHPUnit:

Ellenőrzése a benyújtott értékek közötti egyenlőség igaz / hamis

Például van egy függvény, amely visszaadja egy objektum (returnSampleObject), és azt akarjuk, hogy megbizonyosodjon arról, hogy a visszaadott objektum lesz szükség típusa:

Egy teszt - egy állítás (assert)

Mint minden területen a szoftverfejlesztés, tesztelés jobb gyakorlatot. Egyikük - a”teszt - egy nyilatkozat» (egy teszt, egy állítás). Ez a szabály írni rövid és könnyen olvasható teszteket. De néha vannak gondolatai: „Mivel itt vagyunk ellenőrizni tudja, és valami mást ugyanakkor csekket!”. Például:

Teszt-vezérelt fejlesztés (Test Driven Development)

Nem lenne rossz, beszél vizsgálat nem beszélve a közös technika fejlődés - a fejlődés útján vizsgálat (teszt vezérelt fejlesztés). TDD - egy olyan technikát alkalmazott szoftverek fejlesztése. Az alapötlet ennek a technikának abban a tényben rejlik, hogy az első írásbeli teszteket, és csak ezután írásban során írt alkalmazás kódját, amely veszi ezeket a vizsgálatokat.

Lásd még:

  • Alapjai az egység tesztelése php segítségével phpunit
    Unit tesztelés PHP-n keresztül PHPUnit. A mélység assert-módszerek.
  • Alapjai az egység tesztelése php segítségével phpunit
    Unit tesztelés PHPUnit. A kommentárok és ál-objektumokat.
  • Alapjai az egység tesztelése php segítségével phpunit
    Regisztráció egy kattintással a Google
  • Alapjai az egység tesztelése php segítségével phpunit
    Parancsok dolgozó SSH
  • Alapjai az egység tesztelése php segítségével phpunit
    Reguláris kifejezések a Java. 1. rész.
  • Alapjai az egység tesztelése php segítségével phpunit
    Néhány hasznos reguláris kifejezések a webes fejlesztés.
  • Alapjai az egység tesztelése php segítségével phpunit
    Olvasás Records Google+ PHP és az API Google+
  • Alapjai az egység tesztelése php segítségével phpunit
    Egyszerű nyilvántartási rendszer PHP és MySQL