Unitatea de teste Delfi sau de dezvoltare prin testare

Test de Driven Development în Delphi a făcut folosind Dunit integrat instrument. În acest articol ne vom uita la modul de a crea proiecte de testare Delphi, modul de a crea teste unitare și modalitatea de testare.

Deci, în primul rând să vorbim despre ce Dunit. Dunit - este instrumentul de testare, open source, bazat pe JUnit. El este disponibil pentru Delphi, și pentru C ++.

În acest articol nu voi intra în teorie, ci pur și simplu pentru a arăta cum să utilizați instrumentul Dunit din Delphi. Presupunem că cititorul știe ce dezvoltare prin testare.

Crearea unui proiect de testare

Proiectul de testare conține unul sau mai multe cazuri de testare, care reprezintă o .pas fișierele convenționale și vor fi disponibile în IDE pe bara de instrumente Project Manager. Este, de asemenea RAD Studio vă oferă un expert «test Project Wizard» proiect de testare. Se recomandă să se creeze două proiecte separate: un test, iar al doilea tester. Deci, nu trebuie să ștergeți testele viitoare ale cererii completate.

Să creeze mai întâi un proiect pe care o vom testa. Să presupunem că acest lucru este un panou de aplicare VCL. Selectați elementul de meniu «File -> New -> VCL formulare de cerere - Delphi». Puteți crea un proiect salva.

După crearea unui proiect de testare, de a crea un proiect de test. Pentru a face acest lucru, selectați elementul de meniu «File -> New -> Altele. “, Apoi«Elemente noi»dialog, selectați«test de unitate -> Test de proiect»și faceți clic pe«OK».

Unitatea de teste Delfi sau de dezvoltare prin testare

În primul pas al asistentului «Test de proiect Expertul» în «Sursa de proiect», puteți specifica proiectul de testare, în cazul în care există mai multe. «Denumirea proiectului» și câmpul «Locație» indică numele și locația proiectului de testare. În «Personalitate» limbaj de programare selectată (în cazul nostru - este Delphi). Toate aceste câmpuri sunt completate automat, care ni se potrivește. Bifați «Adăugați la grup de proiect» lăsați un proiect pentru a adăuga la grupul de proiect curent. Faceți clic pe «Next>».

Unitatea de teste Delfi sau de dezvoltare prin testare

puteți selecta următorul pas ca un test (câmp «test Runner») vor fi efectuate: în fereastra ( «GUI») sau consola ( «Console»). Să ne lăsați aici pentru opțiunea implicită - «GUI». În «test cadru» câmp specifică instrumentele de testare. Schimbarea în acest domeniu nu poate fi nimic, deoarece pentru Delphi și C ++ suportă doar Dunit instrument. Faceți clic pe «Finish» și veți vedea că un nou proiect de test martor în grupul de proiect.

Unitatea de teste Delfi sau de dezvoltare prin testare

cazuri de testare și de testare

Într-un proiect de test tipic pentru fiecare clasă de test are o clasă de testare, dar acest lucru nu este obligatoriu. Clasa tester este, de asemenea, atașat la caz test. De obicei, clasa tester are un set de una sau mai multe metode care îndeplinesc una sau mai multe metode ale clasei testate. Într-un proiect de test poate fi inclus un cazuri de testare câteva. Rulați fiecare caz de testare și de proiect de testare poate fi automatizat cu ajutorul BAT-fișier sau script construi proiectului.

În general, se recomandă crearea de teste într-un proiect separat (în afară de proiectul de testare). Deci, nu va trebui să eliminați testele din cadrul proiectului înainte de asamblarea finală a proiectului.

RAD Studio vă oferă un expert «Cazul de testare Wizard» pentru a ajuta la crearea de cazuri de testare pe care le puteți personaliza pe gustul dumneavoastră.

Înainte de a face un caz test, să definim ceea ce vom testa. În cadrul proiectului de testare, Project1. am creat un formular. Hai să o luăm și va fi de testare. Să presupunem că formularul nostru va rând pentru a compara două fișiere text și a afișa linia de diferențe. Vom compara două moduri: registru dat și insensibil. pentru codul de test face elementar, vom compara șirul cu același index.

Deci, în formă de a pune două casete de text și două butonul TButton TRichEdit. Apoi, procesa evenimentele de apăsări de taste și atasaza codul după cum urmează:

După cum puteți vedea făcând clic pe butonul va provoca două Comparați și procedura ShowDifferences. Prima procedură este de a compara cele două texte și stoca indicii în lista de linii de date differentStrings. iar cea de a doua procedură se bazează pe această listă a nuanței linii divergente în roșu. Parametrul ignoreCase Compara Procedura va fi transmisă definește modul în care comparațiile șir. În timp ce punerea în aplicare a funcției Compara nu va face, și de a face imediat un test pentru el.

Pentru a crea un test pentru a face următorii pași:

Unitatea de teste Delfi sau de dezvoltare prin testare

Unitatea de teste Delfi sau de dezvoltare prin testare

        • Următorul pas este dată de proiectul de testare în domeniul «Test de proiect», un nume de fișier caz test în «File name», testare instrumente în «Cadrul de testare» domeniu (acest domeniu nu este activ, deoarece numai că au sprijinit Dunit) și clasa de bază în domeniu «clasa de bază». TTestCase clasă de bază adecvată pentru cele mai multe cazuri, dar puteți utiliza propria clasă. În exemplul nostru, nu vom schimba nimic. Faceți clic pe «Finish».

Unitatea de teste Delfi sau de dezvoltare prin testare

Apoi, veți vedea că în proiectul de testare a apărut «TestUnit1.pas» fișier în aceeași unitate de testare «Unit1.pas» proiect adăugat.

Unitatea de teste Delfi sau de dezvoltare prin testare

Și asta e ceea ce veți vedea în fișierul TestUnit1.pas:

După cum puteți vedea, este executat un semifabricat pentru TestTForm1 clasa de test. TTestCase moștenit de la clasa. Secțiunea de inițializare este înregistrată în această clasă.

În metoda SetUp, există pregătire pentru testare. Aici trebuie să creați o clasă de testare și de a pregăti tot ceea ce este necesar pentru test, de exemplu, pentru a se conecta la un server de la distanță sau o bază de date, etc. Prin codul este generat cu eroare forma proiectantul trebuie să ia un parametru de intrare. linia corectă de cod pentru crearea de forme, după cum urmează:

Metoda teardown este numită la sfârșitul testului, și aici este necesar să se elibereze toate resursele și șterge toate obiectele create. Aici, codul generat, suntem mulțumiți.

Metoda TestCompare creat doar pentru a testa metoda noastră de comparare. După cum puteți vedea, aici am numit metoda noastră de comparare. dar nu există controale. Să adăugăm aici în câmpul de text același text, apelați metoda Comparați și să facă rezultatele testului.

Apoi rulați proiectul de testare Project1Tests.exe. Pentru a face acest lucru, face activ (dublu-click pe proiectul din fereastra «Project Manager») și apoi să înceapă executarea sa (pentru aceasta, selectați «Run -> Run» meniu sau apăsați F9). După fereastra de lansare va apărea în fața ta, așa cum se arată în imaginea de mai jos.

Unitatea de teste Delfi sau de dezvoltare prin testare

Pentru a rula toate testele, selectați meniul «Acțiuni -> Run». Dacă aveți o mulțime de teste, și aveți nevoie pentru a efectua doar unele dintre ele, puteți pune în jos o bifare de lângă testele necesare și apoi a apela meniul «Acțiuni -> Run selectat de testare». După efectuarea testului, veți vedea greșeala. Acest lucru este normal, pentru că atâta timp cât funcția noastră Comparați nu este scris și nu face nimic nu se compară. Dacă faceți clic pe eroare, veți vedea detaliile în câmpul de jos.

Unitatea de teste Delfi sau de dezvoltare prin testare

Acum, să corecteze greșelile pe care testul a fost de succes. Completați funcția de comparație, după cum urmează:

Metoda de testare pentru a adăuga teste pentru diferitele opțiuni de comparație:

Acum să testați funcția noastră comparare. După cum puteți vedea, totul funcționează corect, nu există erori.

Unitatea de teste Delfi sau de dezvoltare prin testare

În metoda CheckEquals de adiție la dispoziția dumneavoastră, există și alte metode pentru a verifica rezultatele. Aici sunt metodele de bază pe care ați putea avea nevoie:

        • Verificați - verifică îndeplinirea condiției, și aruncă o excepție în cazul în care condiția nu este îndeplinită.
        • CheckEquals - verifică egalitatea a două valori, și aruncă o excepție în cazul în care valorile nu sunt egale.
        • CheckNotEquals - verifică cele două valori ale inegalității și aruncă o excepție în cazul în care valorile sunt egale.
        • CheckNotNull - controale pointer la „zero nu» și aruncă o excepție în cazul în care indicatorul este zero.
        • CheckNull - verifică indicatorul la zero, și aruncă o excepție în cazul în care indicatorul nu este egal cu zero.
        • CheckSame - verifică egalitatea de indicii pentru obiecte și aruncă o excepție în cazul în care semnele nu sunt egale.
        • Fail - doar ETestFailure aruncă o excepție cu textul dorit.

Testarea metodelor particulare

Ne-ar dori să arate cum de a testa metode private. Pentru a apela metodele private din Delphi, vom folosi RTTI (Run-Time Type Information).

schimbare a codului de încercare urmează, fără a uita să adăugați o unitate la System.Rtti utilizări clauză:

În mod similar, se poate testa proprietăți private. $ Directiva va arata ca timpul de RTTI, după cum urmează:

Deci, articolul pe care l-au învățat cum să pună în aplicare un sprijin pentru dezvoltarea prin testarea în Delphi. și anume, modul de a crea un proiect de testare, cum să creeze teste și pentru a testa, cum de a testa metode private.