conceptul dop
Testarea componentei este de a furniza datele de intrare în interfața sa, de așteptare pentru o componentă de răspuns, și să verificați rezultatele. În timpul funcționării, componentele sunt adesea folosite de către alte componente, oferindu-le datele și de a folosi informațiile obținute de la acestea:
Figura 1: Testarea componentelor realizate
Aceste alte componente pot provoca dificultăți la testarea:
- Acestea nu pot fi încă puse în aplicare.
- Acestea pot fi erori, testarea perturbator, și imaginind ceea ce eroarea nu a fost cauzată de test, și componentele dependente, acesta poate lua o mulțime de timp și efort.
- Componentele pot împiedica testarea atunci când este cu adevărat necesar. De exemplu, în cazul în care componenta - baza de date comerciale, s-ar putea să nu fie suficient de licențe pentru toți utilizatorii. Un alt exemplu: componenta poate fi numai hardware la anumite intervale de timp într-un anumit laborator.
- Componentele pot fi de testare atât de lent, ceea ce ar fi imposibil să efectueze testele destul de des. De exemplu, inițializarea bazei de date poate dura cinci minute.
- componentă în starea poate fi dificil de pus în care se va da rezultatul așteptat de la ea. De exemplu, înainte de a putea fi contestată pentru a testa procesarea mesajului „pe disc este plin“ pentru toate metodele de a scrie pe disc. Cum să se asigure că discul va fi umplut cu exactitate la momentul convocării metodei de dreapta?
Pentru a evita astfel de complicații, puteți utiliza componente prize de curent (de asemenea, cunoscut sub numele de fișe - simulatoare). Dopurile ar trebui să se comporte în același mod ca nu s-ar fi comportat în componentele reale asupra datelor de intrare, pe care le pot obține în cursul testării. Cu toate acestea, acest lucru este doar sarcina minimă: ca dopurile pot fi folosite emulatoare complete. cât mai exact posibil imita comportamentul real al componentei. De exemplu, destul de des este logic la crearea de software pentru dopurilor de hardware. Ei se vor comporta în același mod ca și hardware-ul, doar mai lent. Utilizarea unor astfel de prize simplifică depanare, elimină problema lipsei de unități de echipamente, și în cele din urmă, ele pot fi utilizate chiar înainte de finalizarea proiectării echipamentelor.
Figura 2: testarea cu un component de racordare în locul componentei din care aceasta depinde
La dopurile au două dezavantaje.
- Dopurile pot fi costisitoare (acest lucru este valabil mai ales pentru emulatoare). Deoarece dopurile în sine sunt software-ul, care au nevoie pentru a menține.
- Dopurile pot masca greșeli. De exemplu, să presupunem că componenta dvs. utilizează funcțiile trigonometrice, dar până în prezent nu a fost încă dezvoltat biblioteca corespunzătoare. Utilizați trei teste pentru a calcula sinusul trei unghiuri: 10 grade, 45 de grade și 90 de grade. Trebuie să găsiți valorile dorite folosind un calculator și de a construi priza funcție sinus care revine la acești parametri de intrare valori 0.173648178, 0.707106781, și 1,0, respectiv. Totul funcționează bine până la integrarea componentei în bibliotecă finite în care funcția sinus ia ca intrare o valoare în radiani și returnează valoarea -0.544021111 și 0.850903525 0.893996664. Ca rezultat, găsiți o eroare în codul de mai târziu și petrece mai mult efort decât ne-am dori.
Uneori, capace sunt create doar pentru că componenta reală nu este încă disponibilă în momentul testării. În toate celelalte cazuri, fișa trebuie să fie păstrate după finalizarea dezvoltării. Cel mai probabil, testele susținute capace, va fi important în menținerea produsului. Prin urmare, calitatea dopurilor trebuie să fie mai mare decât calitatea codului pe ieșire. Deși calitatea dopurilor nu sunt atât de stricte în ceea ce privește codul de produs (de exemplu, cele mai multe dintre dopurile nu are nevoie de propriile sale teste), în viitor, unele dintre ele vor trebui să servească în procesul de schimbări de produs. În cazul în care serviciul ar necesita prea mult efort, plug va fi aruncat afară, iar investiția în ele se vor pierde.
Dopurile afectează structura componentelor - în special în cazurile în care acestea sunt salvate pentru viitor. De exemplu, să presupunem că componenta va stoca perechea de chei și valori în baza de date. Comparați cele două scenarii de dezvoltare:
Scenariul 1: Baza de date este folosit pentru testare, și de a lucra .. Existența bazei de date nu trebuie să se ascundă de componenta. Puteți iniția chiar și o bază de date componentă numită:
Deși este puțin probabil ca va folosi instrucțiuni SQL pentru toate operațiile de citire și scriere, valorile, declarațiile SQL sunt aproape sigur va fi, cel puțin, câteva metode. De exemplu, o componentă care au nevoie de o valoare poate determina următoarea metodă:
Scenariul 2: Pentru a testa baza de date este înlocuit cu un ciot. Codul de componentă trebuie să fie independentă de cea cu care funcționează: cu baza de date reală sau fișa. Prin urmare, codul ar trebui să se aplice metode de interfață abstracte:
In testele, o pereche de chei și valori KeyValuePairs fi implementate utilizând orice structură simplă, un astfel de tabel:
Cu excepția perioadei de testare, componenta va utiliza adaptorul care convertește apelurile KeyValuePairs în SQL: Descrie
La componenta poate fi acelasi designer pentru testarea și utilizarea reală. Acest constructor poate lua numele obiectului care pune în aplicare KeyValuePairs. În mod alternativ, proiectantul poate furniza interfața pentru testarea și numai pentru a solicita ca componentele reale ale clienților trecut numele bazei de date: \
Prin urmare, din punctul de vedere al programatorului sa dovedit că doi dintre scenariul proiectului, generează același API, dar unul dintre aceste scenarii sunt mai ușor de a testa. De asemenea, să fie conștienți de faptul că unele teste pot utiliza o bază de date reale, iar unele - un ciot.