grundlæggende funktionel testning med symfony 2s larve

, grundlæggende funktionel testning med symfony 2 er på,,,,, 80,,,,,,,, 9,,,,,,, det cyber - mandag envato tuts + kurser vil blive reduceret til $3.- og' t miss.,, at teste deres web - ansøgninger, er en af de bedste ting du kan gøre for at sikre, at dens sikkerhed, sundhed og sikkerhed, både for app - - og din app 's besøg.symfony 2 giver en fuldstændig integration afprøvning suite, som du kan bruge til at sørge for, at deres ansøgninger, løb bare, som du tror.i dag skal vi se på, hvordan vi kan bruge symfony 2 og phpunit, afprøvning, rammer, der beskæftiger den, skrive grundlæggende   funktionelle test ved hjælp af bulldozere.,, installering, før vi kan begynde en slags test, lad os fælde vores projekt ved at downloade symfony 2 ramme, få den og så også downloade phpunit.  ,, installation symfony 2, er den bedste måde at downloade symfony 2 er at anvende komponist.hvis du ikke ved, hvad komponist, sørg for at se et par af den utrolige tuts + artikler og kurser på det, de vil opdatere dig hurtigt.  , vil vi først ønsker at åbne vores terminal eller kommandolinjen grænseflade, så vi kan udstede et par komponist kommandoer.en gang i terminalen, ændre lister ind i din lokale udvikling er webroot.for mig, af os x, vil dette være min, ~ /lokaliteter, fortegnelse:,, cd - /lokaliteter, og en gang i en fortegnelse, vi nu kan anvende komponist, at skabe en ny symfony 2 - projektet, som vil downloade og opstille rammerne og nogen af sine besiddelser.  , komponist, skabe projekt symfony standard udgave kravlende /'/ramme - 2,5, kommandoen, fortæller komponist, til at skabe et nyt projekt med symfony 2 rammer i en ny fortegnelse navn, kravlende /, og så er vi også med angivelse af den nøjagtige tekst at downloade, version - 2.5.hvis det er første gang, du downloader rammerne, det kan tage et stykke tid, så der er mange biblioteker og downloadede for alle sælgere.så du skal nok tage en kort pause og kommer tilbage om et par minutter.  , efter at downloade fuldender din terminal nu udviser en interaktiv troldmand, som vil hjælpe dig til fælde konfiguration.det er meget for sig selv, bare ind i din egen legitimitet eller tage den misligholdelse, som jeg har gjort.,,,,, når du ind i din ud oplysninger, symfony 2 er overført, installeret og klar til at blive brugt.nu er vi bare nødt til at få phpunit, så vi kan teste vores kodeks.,, at phpunit, at downloade phpunit, vi kan bruge en wget kommando i terminalen for at hente,. lægemidler, fil eller downloade det på deres websted, det er op til dig:,, wget https: //lægemidler. phpunit. de /phpunit. lægemidler, med den følge, downloadede,. nu er vi nødt til at justere sine tilladelser og flytte til et sted, hvor vores terminal eller kommando linjen, og under folkesundhedsprogrammet vil have adgang til den.på min maskine benytter os x, jeg flyttede ind i min, /bar /lokale /bin, fortegnelse.jeg er også   omdøbt til det dossier, der skal bare, phpunit, så jeg ikke behøver at bekymre sig om udvidelsen, når de prøver at styre mit prøver at redde mig lidt tid:,, chmod + x phpunit.phar sudo mv phpunit.phar /bar /lokale /bin /phpunit, bør vi nu være i stand til at kontrollere, at phpunit der blev installeret og er tilgængelige via terminal ved at løbe, phpunit, kommando.du skulle se sådan noget,,,,, at kravle bundter, nu har vi brug for en formue at holde vores anmodning og test kode.lad os skabe en anvendelse af symfony 2 er konsol, fra vores tårn:,, cd - /sites /kravlende på app /til at generere: bundt - namespace = kravlende /ftestingbundle - format = yml, vi her først ændre fortegnelser i vores, kravle, projekt - og så   bruge til at skabe en ny bundt.vi præciserer også, denne pakke er sælger og bundt navn, adskilt af en skråstreg (fremad, /).vi siger det til brug yaml som udformning af vores konfiguration.nu kan du bruge uanset format, du ville have, hvis du ikke vil bruge yaml, og du kan også   navn din formue, men du foretrækker, så længe du først giver det en sælgers navn og ende din pakke navn med suffikset, bundt,.,,, efter at ovennævnte kommando, vi igen får en fin troldmand for at bidrage til gennemførelsen af det bundt anlæg.jeg slog bare ind for hver omgående at tage misligholdelser, som holder hele processen pænt og enkelt og baner de vej spørgsmål ved at sætte dine filer i skik steder.her er et skærmbillede af min formue, troldmand.,,,,,, hvordan du kører din test, vi har symfony 2, phpunit, og vores pakke. jeg tror, vi er klar nu lære at køre vores   phpunit test med   symfony.det er faktisk ret nemt, bare ændre lister ind i din, kravle,   projekt og udsteder, phpunit - c - app /, kommando til at drive hele din ansøgning er test.du burde få følgende resultat i terminalen.,,,,,, når vi fra vores pakke den skabte også en lille prøve - koden for os.den prøve, som du ser, løb over er en del af prøven kode.du kan se, at vi har en grøn bar, fortæller os, at vores test bestået.nu lige over tid: 1,97 sekunder, vi   har også en fælles dot   viser, at kun en test var løb.i den grønne bar vi har status af, ok, samt hvor mange undersøgelser og påstande blev løb.  ,, så løber bare   denne kommando, vi ved, at vores symfony 2 app er installeret, kører ordentligt, og afprøves. , og skabe en styreenhed, model & rute, har vi brug for faktiske anvendelse kode, som vi kan prøve.  , de registeransvarlige, lad os starte med   skaber en ny   registeransvarlige klasse fil og registeransvarlige handling.inde i dit, kravle, projekt, i henhold til src /krybende /ftestingbundle /registeransvarlige, skabe en ny fil ved navn, crawlingcontroller.php, indsættes følgende i det:,, <?php namespace kravlende. ftestingbundle. registeransvarlige; anvendelse symfony. bundt. frameworkbundle (controller) registeransvarlige klasse crawlingcontroller udvider registeransvarlige {}, i denne sag vi definerer vores grundlæggende registeransvarlige klassestruktur, giver det god namespace og herunder de nødvendige, finansinspektørens forælder klasse.  , den registeransvarlige aktioner, i vores klasse, lad os nu definere vores to enkle   registeransvarlige aktioner.de vil bare gøre to forskellige sider: et hjem, side og en anden side:,, offentlig funktion homeaction() {tilbage $- > de ('crawlingftestingbundle: kravlende: hjem. html. gren)} offentlig funktion otheraction() {tilbage $- > de ('crawlingftestingbundle - kravlende: andre. html. gren)}, skabeloner, skal vi nu til at skabe den skabelon filer til disse registeransvarlige aktioner.i henhold til src /krybende /ftesting /resources /synspunkter, skabe en ny fortegnelse, der hedder, at kravle, til at holde vores, crawlingcontroller, model filer.indenfor, skaber det, home.html.twig, fil, med følgende: i:,, < h1 > kravlende hjem (< /h1 > < p > her er vores kravlende hjem. s. < /p > < p > og kan du besøge < en href = "{{vej ('crawling_other)}}" > på den anden side < /a > også!< /p >,, det indeholder nogle grundlæggende html og et link til den anden side. og nu også gå videre og   skabe, other.html.twig, fil, med denne html indenfor:,, < h1 > anden side < /h1 > < p > her er en anden side, som var knyttet til fra vores hjemmeside, for afprøvning. < /p >,, ruter, og endelig for vores ansøgning kode, lad os definere de ruter, for disse to sider.luk op, src /krybende /ftestingbundle /resources /ud /routing.yml, og ind i følgende to ruter under den misligholdelse, der genereres rute, der kom til vores rute fil:,, crawling_home: vej: /krybende /home misligholdelse (_controller: crawlingftestingbundle: kravlende:} crawling_other: vej: /krybende /andre misligholdelse (_controller: crawlingftestingbundle: kravlende: andre}, her jeg definere to ruter, et for hver af vores registeransvarlige aktioner.vi begynder med de ruter, navn, som vi kan bruge i forbindelser osv.og så skal vi præcisere ruter vej, som er dets uri adgang til side i browseren, og så fortæller vi det som registeransvarlige skal det kort.,, husk nu med yaml, du ikke vil bruge ethvert tab, brug altid rum eller deres ruter ikke vil fungere.,,, med disse to sider, også med, hvordan de grundlæggende og statisk, de er, og vi kan lære meget om, hvordan man bruger symfony 2 er larve til at afprøve hele spektret af under en registeransvarlig, model, indgivelsesvej og forbindelser som en integreret helhed (en funktionstest), som og sikre vores sider vise   korrekt   html struktur.  , at skrive en funktionsprøve, vi er klar til at begynde at lære at skrive funktionelle test   ved hjælp af bulldozere.først skal vi skabe en test fil.,,, at vores test fil, alle dine tests i symfony 2, phpunit prøver opbevares din pakke er test /registeransvarlig, fortegnelse   hver registeransvarlig skal have sin egen styreenhed test fil opkaldt efter den registeransvarlige klasse, det er en prøve.da vi har en, crawlingcontroller, vi er nødt til at skabe en, crawlingcontrollertest.php, fil indenfor, src /krybende /ftestingbundle /test /registeransvarlig, med følgende kategori definition:,, <?php namespace kravlende. ftestingbundle. test. registeransvarlige anvendelse symfony. bundt. frameworkbundle. test. webtestcase; klasse crawlingcontrollertest udvider webtestcase {}, er vi her namespace vores test og omfatter i webtestcase forælder klasse - giver os phpunit kontrol funktioner.vores test klasse navn er nøjagtig den samme som vores filnavn, og vi udvider webtestcase forælder klasse, således at vi arver sin træk.,, lad os skabe en metode til at holde vores påstande om, at vi vil gøre for at afprøve vores hjemmeside.i vores test klasse, lad os skabe følgende metode:,, offentlig funktion testhome() {},, når du skabe en metode, ved hjælp af phpunit i symfony 2 vi altid præfiks vores metode navn med ordet test.du kan give den metode navn selv navnet, du ville kunne lide, selv om konventionen er at opkalde den efter den registeransvarlige aktion, at du prøver.her, jeg har opkaldt min, testhome,   at følge konventionen.,, kunden, nu ind i vores metode, vi har brug for en måde at simulere en browser, således at vi kan fremsætte en anmodning til en af vores http ruter og prøve, at alt er, som vi forventer af den.for at gøre det skal vi skabe en klient genstand ved at kalde en statisk, createclient(), metode:,, $klient = statisk: createclient();,, vi nu kan anvende denne $klient, genstand   til at begynde med på http anmodning og.,, bulldozere, larve er kernen funktionelle test i symfony 2 og giver os mulighed for at rejse og indsamle oplysninger om vores webapplikationen er side samt gennemføre aktioner, som klikker forbindelser eller indgive former.lad os definere vores larve genstand ved en http anmodning ved hjælp af kunden.der tilføjes følgende lige under dine $klient, genstand, i din, testhome, metode:,, $larve = $klient - > anmodning ('get "," /krybende /home "), vil det afkast, som en larve genstand for at teste vores hjemmeside.dette vil sige, at vores side findes, er den korrekte html og formatering og  , at den registeransvarlige, model, og rute alle arbejder som en enhed. , afprøvning af pos. & stk.,, at starte vores funktionelle test, vi vil hævde, at vores hjemmeside indeholder den korrekte position med det rette indhold ind i det.vi bruger vores $larve, formål og dets forskellige metoder til at gøre dette.disse metoder vil vende tilbage en larve genstand for os, og som indeholder den faktiske testet side svar.vi skal afprøve denne reaktion for at sikre alt er som forventet,.,, tilføje følgende kode til din testhome, metode:,, $pos = $larve - > filter ('h1 ') - > - ækvivalent (0) - > text(). $- > assertequals ('crawling hjemmeside, $position), starter vi med at kalde vores $larve, objekt er, filter(), en metode til at filtrere side svar og vælge alle  , h1, elementer.så kan vi kæde på anden metode, opfordrer til filtrering af vores valg yderligere ned.jeg bruger den, eq(), metode, der godkender et indeks holdning til h1 element, vi ønsker at vælge.jeg valgte at udvælge indeks, o, første afsnit.endelig   jeg kæde på teksten metode, som vil vende tilbage i html element er tekst indhold og opbevarer resultat i en $under pos. variabel.,, efter filtrering h1 element, som vi ønsker at teste for, er vi nu nødt til at hævde, at vi har den rette element.vi gør dette med, assertequals(),   metode, der accepterer som det første argument, den værdi, som vi forventer, den post, har, og som det andet argument om, at den faktiske værdi af de returnerede svar, som er vores $under sig.ved at gøre dette vil vi   ved, at vi er på den rigtige side, hvis indholdet svarer til, hvad vi forventer.,, der løber overskriften test, så med fire enkle linjer af folkesundhedsprogrammet kode, - - kan vi teste vores hjem registeransvarlige, model, og rute.lad os køre vores test for at sikre, at det er forbi.i terminalen, fra din, kravle, symfony projekt, løb, phpunit - c - app /,.du skulle se følgende:,,,,, her har vi nu to prøvninger og to påstande, som alle er forbi!nu kan du prøve for enkelt afsnit under overskriften på lignende måde, men den tid, vi bruger, first(), metode,   sådan her:,, $para1 = $larve - > filter (»p«) - > first() - > text(). $- > assertequals ("her er vores kravlende hjem side." $para1),, hvis du er rerun din test, vi nu har tre passerer påstande.godt arbejde!,, afprøvning klikke et link, nu forsøger at afprøve den proces, at vores den anden side link.det fører os til den anden side og udvise den rette indhold der.indsæt følgende kode ind i din, testhome, metode:,, $forbindelse = $larve - > filter (a: indeholder ("den anden side") ') - > first() - > link(). $otherpage = $klient - > klik ($link); $denne - > assertequals (»andre side, $otherpage - > filter ('h1') - > first() - > text());,, vi begynder ved filtrering vores hjemmeside, et hundetegn.vi bruger,: contains(),   filter metode til at filtrere, en, mærker af deres indhold, så sørger vi for, at vælge den rette sammenhæng.vi så bare kæden på, first(), en metode til at tage den første til, link(), metode til at skabe en forbindelse til formål, så vi kan simulere klik på det med vores $klient,.,,, at vi nu har en $link, genstand, vi er nødt til at spænde dem, kalder, $klient, objekt er  , click(), metode og går i $link, imod det og oplagrer svar tilbage til $otherpage, variabel.det   er ligesom alle andre larve objekt, klik metode giver svar.   meget let., og endelig, at vi blot hævde, at vores $otherpage, er udgiftsområde tekst svarer til, hvad vi forventer, at det bliver ved, assertequals() metode.hvis det er, ved vi, at vores forbindelse virker!løb, din test, en sidste gang.lad os nu, kører vores test, en sidste gang for at sikre, at vores forbindelse fungerer korrekt, og at vi er på den rette side efter at trykke det.her er mit endelige resultater:,,,,,, vi har to prøvninger og fire   påstande, som alle er død.app fuldstændig!,, konklusion, og det er det.vi har prøvet, at vores registeransvarlige registeransvarlige aktioner, skabeloner og ruter, alle arbejder sammen, og vi ved, at html og indhold for hvert enkelt element, der korrekt på den side, som vores forbindelser, forbindelser til den korrekte placering.godt klaret.,,, jeg opfordrer dem til at se, hvad du har lært ved at teste den, andre, side, at tilføje mere html eller forbindelser til det, og generelt lige vænnet mig til ved hjælp af bulldozere for at sikre deres side arbejder som forventet.  ,

Configuring Crawler
Running PHPUnit
Creating the Crawling Bundle
Running PHPUnit Tests
Running the Heading Test
Run Your Tests One Last Time



Previous:
Next Page: