9 Bedste automatiserede testrammer til PHP
Har du nogensinde tilbragt lange timer ved at fejle din PHP-kode? Nå for de fleste programmører er det nok ikke den mest fascinerende udfordring, men der er en løsning, der kan hjælpe os med at forkorte denne kedelige opgave. Automatiseret test kan betydeligt forbedre workflow af PHP udvikling ved tillader forudskrevne tests til at drive udviklingsprocessen.
I dette indlæg vil vi forsøge at forstå hvorfor automatiseret test er så cool, hvordan det virker, og hvad er det de bedste testrammer du kan starte med.
Hvorfor Testing er vigtigt
Nybegyndere PHP-udviklere har tendens til ikke at skrive tests for deres kode. De fleste af os begyndte vores karriere ved at teste nye funktioner og funktioner, vi netop havde skrevet i browservinduet en efter en, og når noget gik galt, var vi clueless om hvad de skulle gøre.
Skriveprøver til vores kode kan spare dyrebar debuggingstid og timer med hovedpine. Når ikke testet kode går i produktion, vil de anmeldelser, vi får, nok ikke være så rart. Så hvad kan vi gøre?
Sandsynligvis den bedste ide er at etablere en produktiv test arbejdsproces hvor vi skal skrive vores egen testkode, der kontrollerer om vores applikationskode fungerer korrekt.
Tricket er det testkode skal skrives før applikationskoden. På denne måde kan vi fra begyndelsen sikre, at koden vi skriver fungerer korrekt. Testkoden går i separate filer. Hvis vi senere støder på fejl i vores PHP-app, behøver vi ikke gøre noget andet, bare kør vores tests, som forhåbentlig vil giv os gode råd om problemerne.
Udover at spare tid og korrekt forberede vores app til produktion, har testen også mange andre fordele, såsom:
- mere vedligeholdelig kode
- lettede refactoring
- mindre sikkerhedsproblemer
- mindre oppustet kodebase (tilpasning af applikationskoden til den forhåndskrevne testkode vil gøre os udeladt overflødige dele)
- bedre ydeevne
Hvad er automatiseret testning?
Selvfølgelig kan vi skrive vores tests manuelt, men efter et stykke tid kan det være kedeligt og tidskrævende med mange gentagne opgaver. Manuel testning kan erstattes af automatiseret test, hvor vi bruger specifikke software, der gør det trættende arbejde for os, og vi kan bruge mere tid med at skabe logikken i testkode.
PHP er heldigvis et ganske populært programmeringssprog, så der er mange automatiserede testrammer, vi kan vælge imellem.
Testdrevet udvikling (TDD) vs. Behavior-Driven Development (BDD)
De to hovedmetoder, som automatiserede testrammer bruger, er testdrevet udvikling (TDD) og adfærdsdreven udvikling (BDD). I begge tilfælde er udviklingsprocessen drevet af test, hvilket betyder, at test er skrevet før applikationskoden.
Hovedforskellen mellem testdrevet og adfærdstestet test er i testkodeksens syntaks: TDD bruger korrekt PHP-kode i testfilerne, mens BDD bruger mennesker læsbare sætninger der beskriver hver funktions adfærd og kan også forstås af ikke-tekniske interessenter.
En TDD Test ser sådan ud i kodeditoren, det er bare almindelig objektorienteret PHP-kode:
En BDD-test ligner dette, ikke-programmører kan også give mening om det:
10 PHP automatiserede testrammer
Med det i tankerne, lad os tage et kig på 10 kraftfulde automatiserede testrammer For PHP kan du bruge.
1. PHPUnit
PHPUnit er den mest kendte testramme til skrivning af Unit Tests til PHP apps. Enhedstest tager små portioner af kode kaldet enheder og test dem en efter en. Ved hjælp af PHPUnit kan vi udføre testdrevet udvikling.
Det kan bruges via kommandolinje, og det giver os en Handy TestCase klasse at vi kan udvide efter vores behov. PHPUnit tillader også udviklere at bruge forudskrevne påstande metoder til at hævde, at appen opfører sig en bestemt måde.
2. Codeception
Codeception tillader ikke kun os at skrive Unit Tests, men også Functional og Acceptance Tests. Disse to sidstnævnte tester PHP-appen som helhed med alle funktioner bundet sammen, ikke som enheder. Codeception tillader os at aktivere og konfigurere forskellige moduler i henhold til vores udviklingsbehov.
Det er integreret med mange PHP-udviklingsrammer som f.eks Symfony2, Laravel4, Yii, Phalcon og Zend Framework. Det betyder, at vi kan bruge en PHP-automationstestramme og en PHP-udviklingsramme sammen for at etablere en supereffektiv udviklingsarbejdsproces.
3. hvad
Behat er en populær adfærdsdrevet PHP-testramme. De tests, vi kan skrive med Behat, ser lidt ud ligesom historier end kode. Der bruger StoryBDD-undertypen af adfærdsbaseret udvikling (den anden undertype er SpecBDD).
Rammen blev inspireret af agurkeprojektet, der er en testramme for Ruby-programmeringssproget.
4. PHPSpec
PHPSpec følger også den adfærdsmæssige testmetode, men den anden undertype kaldes SpecBDD. Med PHPSpec skal vi skriv først de specifikationer, der beskriver, hvordan applikationskoden vil opføre sig. Det blev også inspireret af en Ruby testramme kaldet RSpec.
5. Storyplayer
Storyplayer er en fuld stack testramme, der gør det muligt at skriv ende-til-ende test for en hel platform. Storyplayer har støtte til skabe og ødelægge testmiljøer efter behov. Det følger TDD testmetoden, og giver os mulighed for at skrive funktionelle tests, der kan tjekke en applikation som helhed.
6. Peridot
Peridot er en let, udvidelig testramme for PHP. Det har en event-driven arkitektur det gør det nemt for testere Tilpas rammen via plugins og journalister.
Peridot bruger Beskriv det syntax for at etablere et klart og læseligt testsprog, der klart beskriver, hvordan vores applikationskode skal opføre sig.
7. Atoum
Atoum er en intuitiv og moderne PHP testramme, der giver os mulighed for at køre enhedsprøver. Det forenkler testudvikling, og som det er en ung ramme bruger den nogle nyere kapaciteter, der blev introduceret i PHP 5.3 (det kan't bruges med ældre PHP versioner) for at give os en hurtig og letforståelig testproces.
Atoum sikrer a højt sikkerhedsniveau under testudførelse, da det isolerer hver testmetode i sin egen PHP-proces.
8. Kahlan
Kahlan er en komplet BDD testramme, der gør det muligt at skrive Unit Tests ved hjælp af Beskriv det syntaks. Det omfatter KISS (Keep It Simple, Stupid) designprincippet. Kahlan kræver mindst PHP 5.5.
Den har en lille kodebase, det siges at være omkring 10 gange mindre end PHPUnit, og den har masser af funktioner, der giver os en udvidelig og tilpasselig test-arbejdsgang.
9. Selen
Selen er en sofistikeret testramme, der automatiserer browsere. Det betyder, at det er muligt at skrive Bruger Acceptance Tests som undersøge hele appen som helhed.
Selen er et robust værktøj, der har sin egen WebDriver API, der kan køre en browser indbygget som selvom en rigtig bruger ville bruge det enten lokalt eller på en fjernmaskine. Selen er et glimrende værktøj til testning af mere modne webapplikationer.
Afsluttende tanker
Automatiserede testrammer giver os mulighed for at skrive PHP-kode af højere kvalitet, og på grund af sprogets popularitet har vi mange valgmuligheder, så vi kan vælge den, der opfylder vores udvikling, har det bedste..
Der er en vigtig ting, selvom vi altid skal huske. Automatiseret test kan være kraftfuld, men det kan erstatter aldrig beta-testning - test udført af virkelige mennesker, som vil være de fremtidige brugere af ansøgningen.