BDD framework-ul PHP Behat, vă permite să vă testați aplicațiile PHP folosind propoziții care pot fi citite de oameni pentru a scrie caracteristici și scenarii despre modul în care aplicațiile dvs. ar trebui să se comporte pentru a-și testa funcționalitatea. Apoi putem rula aceste teste pentru a vedea dacă cererea noastră se comportă așa cum era de așteptat. Să petrecem aproximativ 15 minute rapid peste procesul de instalare a lui Behat și să învățăm cum putem testa comportamentul aplicațiilor PHP folosind elementele de bază.
Pentru a începe testarea cu Behat, trebuie doar să o instalăm pe mașina noastră de dezvoltare locală. Voi folosi Composer, dar puteți să aruncați o privire la documentația pentru metode suplimentare de instalare.
În cadrul aplicației dvs. PHP (am o aplicație goală PHP numită phpbehat
create în avans) creați un composer.json
fișier cu următorul cod pentru a încărca în Behat:
"necesită": "behat / behat": "2.4.*@stable", "minimum-stabilitate": "dev", "config": bin-dir "bin /"
În terminalul dvs. îl putem instala utilizând următoarea comandă:
compozitor
Ar trebui să putem conduce acum bin / behat
comanda pentru a lucra cu Behat.
Întotdeauna începem prin crearea unui nou caracteristică. O caracteristică este un lucru pe care îl putem folosi pentru a descrie o caracteristică a aplicației noastre și apoi ao implementa pentru a trece testul.
O caracteristică, la cea mai simplă, constă în:
.caracteristică
extensie.Acum nu vă pot arăta cum să testați toate caracteristicile posibile pentru o aplicație, deoarece ar dura prea mult timp. Dar ceea ce pot face este să vă arăt cum să faceți o scriere a unei caracteristici de bază și să puteți adapta acest cod pentru ca acesta să funcționeze pentru aplicația dvs. specifică.
Pentru a evita complicarea procesului de învățare, să creăm un lucru foarte simplu Phpadder.php
fișier care conține o serie de metode pe care le putem folosi pentru a adăuga două numere împreună și afișa suma lor.
clasa Phpadder private $ a; private $ b; sumă publică; funcția publică __construct ($ a, $ b) $ this-> a = $ a; $ this-> b = $ b; funcția publică add () $ this-> sum = $ this-> a + $ this-> b; public display function () return $ this-> sum;
Aceasta creează o nouă clasă numită Phpadder
. Avem câteva proprietăți pentru a ține prima ($ a
) și al doilea ($ b
) care urmează să fie adăugate, precum și a $ suma
proprietatea de a deține suma valorilor.
Apoi, avem constructorul nostru care inițiază proprietățile noastre. Apoi avem un adăuga
metoda pentru a adăuga cele două numere împreună și în cele din urmă a afişa
pentru a afișa suma celor două numere.
Să încercăm acum Phpadder
clasă. Creaza un nou .caracteristică
fișier împreună cu următorul cod:
# features / phpadder.feature Caracteristică: adder Pentru a afișa suma a două numere Ca oricine trebuie să furnizez două numere
Începem, oferindu-i un nume de caracteristică sumator
. Apoi, specificăm, în trei rânduri, beneficiile, rolul și caracteristicile caracteristicilor. Ar trebui să fie destul de auto-explicativă.
Acum, că avem funcția noastră, să începem să scriem scenariile noastre.
Oricând creăm o funcție, putem defini scenarii care descriu modul în care se comportă această caracteristică în anumite condiții. Scenariul urmărește același aspect de bază care constă în descrierea scenariului, un context, un eveniment și un rezultat.
Să creăm un scenariu care să ne testeze Phpadder
cerere:
Scenariu: Afișați suma a două numere furnizate Având în vedere că am numărul 50 și numărul 25 Când le adaug pe ele, atunci ar trebui să obțin 75
Începem cu descrierea scenariului nostru, apoi enumerăm că începem cu cele două numere de 50 și 25 și când se adaugă împreună, ar trebui să afișeze suma de 75.
De asemenea, aveți mai multe contexte, evenimente și rezultate, utilizând următoarele cuvinte cheie: Și
și Dar
. Iată un exemplu modificat al scenariului anterior pe care îl vom folosi Și
:
Scenariu: Afișați suma celor două numere furnizate Având în vedere că am numărul 50 și numărul 25 Și am un al treilea număr de 25 Când le adaug pe ele, atunci ar trebui să obțin 100
Un pas nu este altceva decât o funcție PHP care este alcătuită dintr-un cuvânt cheie, o expresie regulată și o funcție de apel invers. Fiecare declarație din scenariul dvs. va fi potrivită unui pas. Acești pași definesc ce ar trebui să se întâmple, dat fiind că una dintre afirmațiile dvs. este numită în cadrul unui scenariu. Stocați toți pașii dvs. în cadrul Caracteristici / bootstrap / FeatureContext.php
fişier.
În a noastră FeatureContext.php
fișier (poate fi necesar să creați acest lucru), trebuie să scrie un pas pentru fiecare dintre afirmațiile noastre, folosind numele său ca nume de funcție. Vom începe cu "Având în vedere că am numărul"
afirmație:
# features / bootstrap / FuncțiiContext.php necesită ("Phpadder.php"); utilizați Behat \ Behat \ Context \ BehatContext, Behat \ Behat \ Exception \ PendingException; folosiți Behat \ Gherkin \ Node \ PyStringNode, Behat \ Gherkin \ Node \ TableNode; clasa FeatureContext extinde BehatContext private $ Adder; / ** * @Given / ^ Am numarul (\ d +) si numarul (\ d +) $ / * / functia publica iHaveTheNumberAndTheNumber ($ a, $ b) $ this-> Adder = $ b);
În primul rând, vom crea un nou fișier PHP, care să fie necesar în cadrul nostru Phpadder.php
fișierul (fișierul pe care îl testează), și apoi vom folosi câteva clase Behat cu utilizare
declarații, imediat după.
Apoi, ne creăm FeatureContext
clasa și să o extindă BehatContext
clasă.
Clasa noastră are o singură proprietate, $ Adder
, care va deține a Phpadder
obiect.
În cele din urmă, vom crea o metodă pentru primul nostru pas, folosind același nume ca și instrucțiunea. Pasul nostru are o expresie regulată, găsită în comentariul metodei. Această expresie regulată este folosită pentru a se potrivi pasului cu o declarație de scenariu. În cadrul acestei metode se atribuie pur și simplu un nou Phpadder
obiect față de noi $ This-> Adder
astfel încât restul metodelor noastre să aibă acces la aceleași Phpadder
obiect.
Acum, probabil ați observat @Dat
cuvântul cheie din comentariul funcției dvs., aceasta este de fapt o adnotare, astfel încât diferitele tipuri de pași să poată fi identificați. Poți să folosești @Dat
, @Cand
, și @Atunci
.
Acum trebuie doar să scriem ultimii doi pași.
/ ** * @ Când / ^ le adaug împreună $ / * / funcția publică iAddThemTogether () $ this-> Adder-> add ();
Acest pas folosește pur și simplu $ This-> Adder
obiecte adăuga
pentru a adăuga cele două numere împreună.
/ ** * @Apoi / ^ ar trebui sa primesc (\ d +) $ / * / functia publica iShouldGet ($ sum) if ($ this-> Adder-> sum! = $ Sum) : "$ this-> Adder-> suma); $ this-> Adder-> display ();
Acest pas începe prin a verifica dacă suma reală (recuperată cu ajutorul contului nostru $ This-> Adder
obiect și a lui sumă
proprietate) este nu egală cu suma așteptată. Dacă acest lucru este evaluat la adevărat, înseamnă că trebuie să avem Behat un eșec. Pentru a face acest lucru, vom arunca o nouă excepție afișând suma reală pentru a putea compara. Altfel, numim noi afişa
metodă.
E timpul să executați testele.
Acum, când avem caracteristicile, scenariile și pașii expuși, conduceți testele folosind următoarea comandă:
bin / behat
Ar trebui să vedeți în interiorul terminalului următoarele mesaje de succes:
Puteți să vă asigurați că testele dvs. rulează corect, prin simpla rupere a ceva în dvs. Phpadder.php
fișier astfel încât să nu funcționeze exact la fel cum vă așteaptă testul. De exemplu, dacă schimbăm adăuga
metoda de a utiliza în schimb scădere, cum ar fi:
funcția publică adăugă () $ this-> sum = $ this-> a - $ this-> b;
Și apoi reluăm testele noastre: bin / behat
. Puteți vedea în terminalul nostru, acum avem un test de eșec, deoarece nu mai adaugă numerele noastre, ci le scade:
În concluzie, puteți urma un mic proces de patru etape pentru testarea aplicațiilor dvs. PHP folosind Behat:
bin / behat
Deci, cu doar acea cantitate mică de cod, ar trebui să avem acum o înțelegere de bază despre cum să lucrăm cu Behat pentru a testa aplicațiile noastre PHP. Pentru mai multe informații despre lucrul cu Behat, vă rugăm să verificați documentația.