Egy példa az írás egység vizsgálatok 1C-Bitrix projekt blog e-lapok
Ebben a bejegyzésben lesz szó példákat egység vizsgálatok, hogy teszteljék a teljesítmény osztály végrehajtására vonatkozó virtuális csapatok a boltban a 1C-Bitrix. Fogom leírni funkcionális működésének virtuális csapatok, valamint egy közelebbi pillantást PHPUnit-teszt kód kipróbálni.
Mi PHPUnit
PHPUnit - egy keret egység tesztelése PHP projektekben. Ő a képviselője a család xUnit keretek alapján sUnit csomag bevallotta Kent Beck. PHPUnit létre német programozó Sebastian Bergmann.
PHPUnit jött létre a pont - minél előbb megtalálni a kódon, annál hamarabb lehet javítani őket. Mint minden egység tesztelése keretek PHPUnit használ állítás, hogy teszteljék a viselkedését a vizsgálati egység kódja úgy viselkedik, mint várták.
PHPUnit biztosít a programozó, a következő jellemzőkkel:
- Eszközök létrehozására egység tesztek és szervezik a hierarchikus készletek.
- Parancssori felület tesztelése
- Az adatszolgáltatók - generátorok vizsgálati adatok, hogy teszteljék, mint az egyetlen teszt viselkedik különböző bemeneti adatok.
- tesztkód támogatás segítségével az adatbázist.
- Az a képesség, hogy teszteljék kivételek.
- Támogatás az úgynevezett virtuális tárgyak
- jelentés generátor
- Integráció eszköz RC szelén tesztelésre felhasználói felületek
PHPUnit gond nélkül lehetővé teszi a vizsgálati helyek alapján Bitrix Framework. Mielőtt tovább olvasás, azt ajánlom, hogy olvassa el a cikket. amely leírja, hogyan kell barátkozni, és az 1C Bitriks PHPUnit.
Egyes funkciók fognak tesztelni
Tegyük fel, hogy van egy feladat, hogy fedezze a vizsgálatokat a funkcionalitás virtuális csoportok, amelyek megvalósítása egy osztályban. A koncepció a virtuális csoportokban tárgyaljuk részletesen ebben a cikkben - Virtuális zenekar online áruház 1C-Bitrix. Röviden - elültetjük a katalógusban szakaszban, amelyben a „fizikailag” nem köti árut. Mi lehet tölteni ezeket a virtuális partíciók a speciális tulajdonságai a tölteléket, amelynek alapja szűrő és az áruk jelennek meg a menet. Ez sok előnye van, és lehetővé teszi a rugalmasságot, hogy új szakaszokat, hogy támogassák a boltban, miközben megőrzi az alapvető szerkezetét a katalógusban.
Folytassuk a technikai részleteket. Funkcionalitás meglehetősen bonyolult, és a munka is sok tényezőtől függ, amelyeket nehéz kézzel ellenőrizni, ha hiba történik. Auto teszt képes megoldani ezt a problémát, és gyorsan mutatni, ahol a kód van valami baj. Funkcionalitás alapja az az egyéni tulajdon fejezetből, amelyikben mi megtölti a szabályok, amelyek meghatározzák az áruk szerepelnek az aktuális virtuális csoport. Mi is módszerekkel letölteni ezeket a tulajdonságokat, és létrejönne egy szűrő módszer CIblockElement :: GetList (). aki megkapja a megfelelő áruk meghatározott szabályokat. A virtuális partíció lehet gyűjteni áruk a kétféle beállítás: kötődve más szakaszokra az információs blokkban és kötelező a termék tulajdonságait. Így, kötődése több szakaszok és tulajdonságait, és meghatározhatja a logika (és / vagy) az aránya a szakaszok és elemek megfelelően. Eszerint vannak olyan módszerek, amelyek a szűrőket az ilyen típusú beállításokat.
Feldolgozási példák egység vizsgálatok
A teszt a teljes funkcionalitás e írtunk egy tucat teszt, nézzük elemzik azokat. Az első teszt - a legalapvetőbb, és nem számít, milyen triviális, hogy nem hisszük, hogy ez szükséges. A kritikus állapotban a virtuális csoportok - az első és legfontosabb, a jelen modul a rendszerbe telepített információs blokk. Ez lehet próbálni egy ilyen teszt:
Ezután meg kell ellenőrizni, hogy a kívánt tulajdonságokat a felhasználó van a rendszerben. Ezt meg lehet tenni a tesztet, hogy egy válogatást az adott karakter kód tulajdonságai az API használatával 1C-Bitrix
Ennek a vizsgálatnak egy alapvető, attól függően, hogy a számos más vizsgálatok azt, amit alább írunk le. Ie úgy kell elvégezni, csak azzal a feltétellel, hogy testCatalogSectionHasNeededUserProps () sikeres, különben nincs értelme, hogy ellenőrizze őket.
A következő 2 tesztek ellenőrzik, hogy a megfelelő munkamódszerek extrahálására zászló azonosítók és / vagy tulajdonságait a szakaszok és az elemek (szükséges funkcionális belső logikája). A vizsgálati módszerek hívják a kivitelező és a boltban azonosítóit felhasználói tulajdonság értékek az objektum tulajdonságait. Ez azt jelenti, teszt feladat manuális állítható be a megfelelő felhasználói azonosítók ingatlanok értéke, hogy őket, mint a standard, hogy hozzon létre egy teszt például az osztály, és ellenőrizze a kívánt objektum tulajdonságait való megfelelés a szabványnak. Itt van, hogyan néz ki:
Megjegyzés: a kommentár módszerek - @depends testCatalogSectionHasNeededUserProps. Ez az összefoglaló által nyújtott PHPUnit és felállít egy szabályt, hogy egy adott tesztet kell végezni, ha a megadott függően teszt sikeres volt.
Ezután kell tesztelni, mint amilyent konstrukciók, ha át is érvénytelen bemeneti paramétere. A mi esetünkben, meg kell dobni egy kivételt alap osztály kivételek - Kivétel. Ezt lehet ellenőrizni segítségével beépített kommentárok @expectedException. mint ez:
A következő lépés - az ellenőrzési módszerek, hogy létrejöjjön a szűrőt, és vissza az ügyfél kódot. Hogy ezeket a teszteket, meg kell használni objektum Mocha vizsgálati osztály. Mocha (Engl Mock.) - Ez a különleges dummy objektum, amely lehetővé teszi a jelen esetben, hogy szimulálja az adat fogadását külső forrásból származó részt. A vizsgálat során nem függ a konkrét információ virtuális partíciók egy adatbázisban, ez a mi helyettesítő (szimulációs) a tényleges kitermelés a tömb az adatbázisból a statikus előre közvetlenül a kódot tömb.
Mivel ez a dummy modell-objektum van szükségünk néhány próbát - mi teszi, hogy valamilyen védett módszert. PHPUnit tesztvégrehajtási nem fogja figyelembe venni ezt a módszert egy tesztet, és nem próbál meg végrehajtani. Itt van a kód ezt a módszert:
A következő teszt használatával mock-objektum ellenőrzi, hogy az eljárás határozza meg, mely szakasz vezetünk, hogy a kivitelező, hogy a bemeneti: valós vagy virtuális:
A teszt a módszert, amely épít egy szűrő, meg kell, hogy ellenőrizze, hogy önmagán belül legalább egyszer meghívja módszerek az építőiparban a szűrő rész (kötődés szakaszok és elem tulajdonságai):
Azt is rendkívül fontos, hogy az eredményül kapott tömböt szűrővel visszaadja a kulcsot VIRTUAL_GROUP. mivel ez használ a kliens oldali kódot. Itt van egy teszt, amely ellenőrzi az időt:
Itt van egy pár tesztet, hogy ellenőrizze a belső eljárások a vizsgálati osztály. Milyen viselkedést úgy is lehet érteni a check érvényesíteni-módszerek:
PHPUnit - egy hatékony eszköz, amely megszünteti a kézi összevetése a sok lehetséges beállításokat, ha hiba történik. Miután egy praktikus unit tesztek nyugodtan, hogy a változás a vizsgálati osztály, hozzáadhat és bővíti a funkcionalitás, ugyanakkor biztos, hogy az új változásokat anélkül, hogy elszakadna magatartás, amely arra számít, egy osztály az ügyfél kódot.
Biztos vagyok benne, hogy a burkolat tesztek kódot írsz, nem csak jön vissza hozzád az idő megtakarítás tömeg, amikor hibakeresés a honlapon, és keresse meg a hiba bekövetkezett. A fejlesztés a funkciós csoportok virtuális vizsgálatokat többször rámutatott, hogy nekünk a hibákat, az integráció az új fejlesztések, amelyek lehetővé tették a jogot, hogy meghatározza és megoldja a problémát úgy, hogy írás tesztek egy jó befektetés a minősége a projekt.