Hjemmeside » Toolkit » 9 beste automatiserte testrammer for PHP

    9 beste automatiserte testrammer for PHP

    Har du noen gang brukt lange timer på å feilsøke PHP-koden din? Vel, for de fleste programmører er det sannsynligvis ikke den mest fascinerende utfordringen, men det er en løsning som kan hjelpe oss med å forkorte denne kjedelige oppgaven. Automatisert testing kan forbedre arbeidsflyten av PHP utvikling betydelig tillater forhåndskrevne tester for å drive utviklingsprosessen.

    I dette innlegget vil vi prøve å forstå hvorfor automatisert testing er så kult, hvordan det fungerer, og hva er det de beste testrammene du kan starte med.

    Hvorfor Testing er viktig

    Nybegynner PHP-utviklere har en tendens til ikke å skrive tester for deres kode. De fleste av oss begynte vår karriere ved å teste nye funksjoner og funksjoner som vi nettopp hadde skrevet i nettleservinduet en etter en, og når noe gikk galt, var vi clueless om hva de skulle gjøre.

    Skrivingstester for koden vår kan spare dyrebar feilsøkingstid og timer med hodepine. Når uprøvd kode går i produksjon, vil de vurderinger vi får, trolig ikke være så hyggelig. Så hva kan vi gjøre?

    Sannsynligvis er den beste ideen å etablere en produktiv testing arbeidsflyt der vi må skrive vår egen testkode som kontrollerer om programkoden fungerer riktig.

    Trikset er det testkoden må skrives før søknadskoden. På denne måten kan vi fra begynnelsen sikre at koden vi skriver fungerer riktig. Testkoden går inn i separate filer. Hvis vi senere støter på eventuelle feil i vår PHP-app, trenger vi ikke å gjøre noe annet, bare kjør våre tester som forhåpentligvis vil Gi oss riktige hint om problemene.

    Annet enn å spare tid og riktig forberede vår app for produksjon, har testingen mange andre fordeler, for eksempel:

    • mer vedlikeholdsbar kode
    • tilrettelagt refactoring
    • mindre sikkerhetsproblemer
    • mindre oppblåst kodebase (å tilpasse søknadskoden til den forhåndskrevne testkoden vil gjøre oss umulige overflødige deler)
    • bedre ytelse

    Hva er automatisert testing?

    Selvfølgelig kan vi skrive våre tester manuelt, men etter en stund kan det være kjedelig og tidkrevende med mange gjentatte oppgaver. Manuell testing kan erstattes av automatisert testing der vi bruker spesifikke programvare som gjør det kjedelige arbeidet for oss, og vi kan bruke mer tid med å skape logikken til testkoden.

    PHP er heldigvis et ganske populært programmeringsspråk, så det er mange automatiserte testrammer vi kan velge mellom.

    Testdrevet utvikling (TDD) vs. Behavior-Driven Development (BDD)

    De to viktigste tilnærmingene som automatiserte testrammer bruker, er Testdrevet utvikling (TDD) og Behavior-Driven Development (BDD). I begge er utviklingsprosessen drevet av testing, det betyr at tester skrives før søknadskoden.

    Hovedforskjellen mellom testdrevet og oppførselstesting er i syntaksen til testkoden: TDD bruker riktig PHP-kode i testfilene, samtidig som BDD bruker mennesker lesbare setninger som beskriver oppførselen til hver funksjon og kan forstås av ikke-tekniske interessenter også.

    En TDD-test ser slik ut i kodeditoren, det er bare vanlig objektorientert PHP-kode:

    BILDE: Codeception.com

    En BDD-test ligner dette, men ikke-programmerere kan også gi mening om det:

    BILDE: Behat.org

    10 PHP automatiserte testrammer

    Med det i tankene, la oss ta en titt på 10 kraftige automatiserte testrammer For PHP kan du bruke.

    1. PHPUnit

    PHPUnit er den mest kjente testrammen for å skrive Unit Tests for PHP apps. Enhetstester tar små deler av koden som heter enheter og tester dem en etter en. Ved hjelp av PHPUnit kan vi gjennomføre testdrevet utvikling.

    Den kan brukes via kommandolinje, og det gir oss en Hendig TestCase klasse at vi kan utvide etter våre behov. PHPUnit tillater også utviklere å bruke forhåndskrevne påstandsmetoder for å hevde at appen oppfører seg på en bestemt måte.

    2. Codeception

    Codeception gjør ikke bare oss i stand til å skrive Unit Tests, men også Funksjonelle og Godkjenningstester. Disse to sistnevnte tester PHP-appen som en helhet med alle funksjoner bundet sammen, ikke som enheter. Codeception tillater oss å aktivere og konfigurere ulike moduler i henhold til utviklingsbehovene våre.

    Den er integrert med mange PHP-utviklingsrammer som Symfony2, Laravel4, Yii, Phalcon og Zend Framework. Dette betyr at vi kan bruke et PHP-automatiseringstestramme og et PHP-utviklingsramme sammen for å etablere en supereffektiv utviklings arbeidsflyt.

    3. Behat

    Behat er et populært oppførsel-drevet PHP testing rammeverk. Tester vi kan skrive med Behat ser ganske ut som historier enn kode. Behat bruker StoryBDD-undertypen av adferdsdrevet utvikling (den andre undertypen er SpecBDD).

    Rammen ble inspirert av agurkprosjektet som er et testramme for Ruby-programmeringsspråket.

    4. PHPSpec

    PHPSpec følger også den oppførselsdrevne testmetoden, men den andre undertypen heter SpecBDD. Med PHPSpec må vi skriv spesifikasjonene først som beskriver hvordan programkoden vil oppføre seg. Det ble også inspirert av et Ruby testing rammeverk kalt RSpec.

    5. Storyplayer

    Storyplayer er en fullstabel testing ramme som gjør det mulig å skriv end-to-end tester for en hel plattform. Storyplayer har støtte for skape og ødelegge testmiljøer på etterspørsel. Det følger TDD testing tilnærming, og lar oss skrive funksjonelle tester som kan sjekke en applikasjon som helhet.

    6. Peridot

    Peridot er et lett, utvidbart testramme for PHP. Den har en hendelse-drevet arkitektur som tillater testere enkelt tilpass rammen via plugins og journalister.

    Peridot bruker Beskriv det syntaks for å etablere et klart og lesbart testsprog som tydelig beskriver hvordan søknadskoden skal oppføre seg.

    7. Atoum

    Atoum er et intuitivt og moderne PHP testing rammeverk som gjør at vi kan kjøre enhetstester. Det forenkler testutviklingen, og som det er et ungt rammeverk, benyttes det noen nyere muligheter som ble introdusert i PHP 5.3 (det kanIkke bruk med eldre PHP-versjoner) for å gi oss en rask og lettforståelig testprosess.

    Atoum sikrer a høyt sikkerhetsnivå under testutførelse, som det isolerer hver testmetode i sin egen PHP-prosess.

    8. Kahlan

    Kahlan er et fullverdig BDD testing rammeverk som gjør det mulig å skrive Unit Tests ved hjelp av Beskriv det syntaks. Den omfatter KISS (Keep It Simple, Dumb) designprinsippet. Kahlan krever minst PHP 5.5.

    Den har en liten kodebase, det sies å være omtrent 10 ganger mindre enn PHPUnit, og den har mange funksjoner som gir oss en utvidbar og tilpassbar testing av arbeidsflyt.

    9. Selen

    Selen er et sofistikert testramme som automatiserer nettlesere. Dette betyr at det er mulig å skrive Bruker Acceptance Tests som undersøke hele appen som helhet.

    Selen er et robust verktøy som har sin egen WebDriver API som kan kjøre en nettleser nativt som selv om en ekte bruker ville bruke den enten lokalt eller på en ekstern maskin. Selen er et utmerket verktøy for testing av mer modne webapplikasjoner.

    Siste tanker

    Automatiserte testrammer gir oss mulighet til å skrive høyere PHP-kode, og på grunn av språkets popularitet har vi mange valg, så vi kan velge den som møter vår utvikling, trenger det beste.

    Det er en viktig ting selv om det alltid er viktig å huske på. Automatisert testing kan være kraftig, men det kan aldri erstatte beta-testing - tester gjort av virkelige mennesker som vil være fremtidige brukere av søknaden.