Domovská » Sada nástrojů » 9 Nejlepší automatizované testovací rámce pro PHP

    9 Nejlepší automatizované testovací rámce pro PHP

    Už jste někdy strávili dlouhé hodiny laděním kódu PHP? Pro většinu programátorů to asi není nejzajímavější výzvou, ale je zde řešení, které nám může pomoci tento únavný úkol zkrátit.. Automatizované testování může výrazně zlepšit workflow vývoje PHP umožnění předběžných testů řídit vývojový proces.

    V tomto příspěvku se pokusíme porozumět proč je automatické testování tak cool, jak to funguje a co je nejlepších testovacích rámců můžete začít s.

    Proč je testování důležité

    Vývojáři PHP začínají psát testy pro svůj kód. Většina z nás začala naši kariéru testováním nových funkcí a funkcí, které jsme právě napsali v okně prohlížeče, a když se něco pokazilo, byli jsme bezradní, co dělat.

    Psaní testů pro náš kód může ušetřit drahocenný čas ladění a hodiny bolesti hlavy. Když testovaný kód přejde do výroby, recenze, které dostaneme, pravděpodobně nebudou tak pěkné. Takže co můžeme dělat?

    Asi nejlepší nápad je vytvořit pracovní postup produktivního testování ve kterém musíme napsat vlastní testovací kód, který kontroluje, zda náš kód aplikace funguje správně.

    Trik je ten testovací kód musí být napsán před kódem aplikace. Tímto způsobem můžeme od samého počátku zajistit, že kód, který píšeme, funguje správně. Testovací kód přejde do samostatných souborů. Pokud bychom později narazili na jakékoli chyby v naší aplikaci PHP, nemusíme dělat nic jiného, ​​jen spustit naše testy, které snad budou dejte nám náležité rady o problémech.

    Kromě úspory času a řádné přípravy naší aplikace pro výrobu má testování i mnoho dalších výhod, například:

    • více udržovatelný kód
    • usnadnilo refaktorování
    • méně bezpečnostních problémů
    • méně nafouknutý kódový základ (přizpůsobení aplikačního kódu předběžně napsanému testovacímu kódu nám umožní vynechat zbytečné části)
    • lepší výkon

    Co je to automatické testování?

    Samozřejmě můžeme naše testy psát ručně, ale po chvíli to může být únavné a časově náročné s mnoha opakovanými úkoly. Manuální testování může být nahrazeno automatickým testováním, ve kterém používáme specifický software, který pro nás dělá únavnou práci, a my můžeme strávit více času vytvořením logiky testovacího kódu..

    PHP je naštěstí docela populární programovací jazyk, takže existuje mnoho automatizovaných testovacích rámců, ze kterých si můžeme vybrat.

    Vývoj řízený testem (TDD) vs. vývoj řízený chováním (BDD)

    Dva hlavní přístupy, které využívají automatizované testovací rámce, jsou vývoj testů řízených vývojem (TDD) a vývoj řízený chováním (BDD). V obou případech je vývojový proces řízen testováním, což znamená, že testy jsou napsány před kódem aplikace.

    Hlavní rozdíl mezi testováním řízeným testováním a testováním chování je v syntaxi testovacího kódu: TDD používá správný PHP kód v testovacích souborech, zatímco BDD používá věty čitelné člověkem které popisují chování každého prvku a mohou být pochopeny i netechnickými subjekty.

    Test TDD vypadá takto v editoru kódu, je to jen pravidelný objektově orientovaný PHP kód:

    IMAGE: Codeception.com

    BDD test je podobný tomuto, non-programátoři mohou také smysl pro to: \ t

    IMAGE: Behat.org

    10 PHP Automatizované testovací rámce

    S tímto vědomím se podívejme na 10 výkonných automatizovaných testovacích frameworků pro PHP, které můžete použít.

    1. PHPUnit

    PHPUnit je nejznámější testovací rámec pro psaní testů jednotek pro aplikace PHP. Jednotkové testy odebírají malé části kódu nazývané jednotky a testují je jeden po druhém. S pomocí PHPUnit můžeme provádět test-řízený vývoj.

    Může být použit přes příkazový řádek, a poskytuje nám to praktická třída TestCase které můžeme rozšířit podle našich potřeb. PHPUnit také umožňuje vývojářům používat pre-písemné tvrzení metody tvrdit, že aplikace se chová určitým způsobem.

    2. Kódování

    Kódování nám neumožňuje pouze psát testy jednotek, ale také funkční a akceptační testy. Tyto dva poslední testy aplikace PHP jako celek se všemi funkcemi svázané dohromady, ne jako jednotky. Kódování nám umožňuje povolit a konfigurovat různé moduly podle našich rozvojových potřeb.

    Je integrován s mnoha vývojovými rámci PHP, jako je například Symfony2, Laravel4, Yii, Phalcon a Zend Framework. To znamená, že můžeme použít rámec pro testování automatizace PHP a rámec pro vývoj PHP společně, abychom vytvořili efektivnější vývojový pracovní postup.

    3. Behat

    Behat je populární testovací rámec PHP založený na chování. Testy, které můžeme psát s Behat vypadají spíše jako příběhy než kód. Používá podtyp StoryBDD vývoje řízeného chování (druhý podtyp je SpecBDD).

    Rámec byl inspirován projektem Cucumber, což je testovací rámec pro programovací jazyk Ruby.

    4. PHPSpec

    PHPSpec také sleduje testovací přístup založený na chování, ale jeho další podtyp zvaný SpecBDD. S PHPSpec potřebujeme zapište nejprve specifikace, které popisují, jak se bude kód aplikace chovat. To bylo také inspirováno Ruby testovacím rámcem volal RSpec.

    5. Storyplayer

    Storyplayer je full-stack testovací rámec, který umožňuje psát end-to-end testy pro celou platformu. Storyplayer má podporu vytváření a ničení testovacího prostředí na vyžádání. Sleduje testovací přístup TDD a umožňuje nám psát funkční testy, které dokážou zkontrolovat aplikaci jako celek.

    6. Peridot

    Peridot je lehký, rozšiřitelný testovací rámec pro PHP. Je vybaven architektura řízená událostmi který umožňuje testerům snadno přizpůsobit rámec prostřednictvím pluginů a reportérů.

    Peridot používá Popište to syntaxe pro vytvoření jasného a čitelného testovacího jazyka, který jasně popisuje, jak by se měl náš aplikační kód chovat.

    7. Atoum

    Atoum je intuitivní a moderní framework pro testování PHP, který nám umožňuje provádět testy na jednotkách. To zjednodušuje vývoj testů, a protože je to mladý rámec, využívá některé novější funkce, které byly zavedeny v PHP 5.3 (to můžebýt používán u starších verzí PHP) poskytnout nám rychlý a snadno srozumitelný proces testování.

    Atoum zajišťuje a vysoká bezpečnost při provádění testu, izoluje každou testovací metodu ve svém vlastním PHP procesu.

    8. Kahlan

    Kahlan je full-featured BDD testovací rámec, který umožňuje psát Unit testy pomocí Popište to syntax. Zahrnuje princip designu KISS (Keep It Simple, Stupid). Kahlan vyžaduje nejméně PHP 5.5.

    Má malou kódovou základnu, říká se, že je asi desetkrát menší než PHPUnit a má spoustu funkcí, které nám poskytují rozšiřitelný a přizpůsobitelný testovací pracovní postup.

    9. Selen

    Selenium je sofistikovaný testovací rámec, který automatizuje prohlížeče. To znamená, že je možné napsat uživatelské akceptační testy, které zkoumat celou aplikaci jako celek.

    Selenium je robustní nástroj, který má své vlastní rozhraní WebDriver API, které může řídit prohlížeč nativně skutečný uživatel by ho však používal buď lokálně, nebo na vzdáleném počítači. Selen je vynikající nástroj pro testování zralejších webových aplikací.

    Závěrečné myšlenky

    Automatizované testovací rámce nám umožňují psát kvalitnější PHP kód, a vzhledem k popularitě jazyka máme mnoho možností, takže se můžeme rozhodnout pro ten, který vyhovuje našim potřebám v oblasti vývoje..

    Je tu důležitá věc, kterou musíme mít na paměti. Automatizované testování může být silné, ale může nikdy nenahrazujte testování beta - testy provedené skutečnými lidmi, kteří budou budoucími uživateli aplikace.