Test dublu

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

Testele duble (denumite în mod informal și sub denumirea necorespunzătoare [1] a simulării ) sunt un instrument utilizat în programare , în special orientat pe obiecte , ca un ajutor în dezvoltarea testelor unitare . Un test dublu este un obiect care are aceeași interfață ca un obiect aparținând aplicației, dar are un comportament simplificat (sau chiar „gol”). Deoarece interfața este aceeași, obiectul aplicației poate fi „înlocuit” cu dublul său test în acele teste în care comportamentul obiectului real nu este relevant sau chiar nu poate fi reprodus. Modalitățile prin care testul dublu este substituit obiectului real sunt în general atribuibile tehnicilor de injectare a dependenței . Expresia „test dublu” este o distribuție din „dublă cascadorie”, stand . [1]

Tipuri de test dublu

Conceptul de test dublu este foarte larg și poate fi aplicat obiectelor „duble” cu caracteristici și funcții structurale foarte diferite. Clasificarea tipurilor de teste duble și terminologia corespunzătoare au fost istoric incerte, dar s-au standardizat treptat. Printre alții, Gerard Meszaros (în cartea XUnit Test Patterns din 2007) [2] , Martin Fowler ( Mocks Aren't Stubs [3] ) și Robert „Uncle Bob” Martin au propus clasificarea „standard”. [1] Clasificarea propusă de acești autori a fost adoptată, printre altele, de Microsoft . [4]

Principalele tipuri de teste duble conform clasificării comune sunt următoarele:

  • Manechin . Un test dublu fără comportament. Aplicația tipică a unui manechin este atunci când trebuie să treceți un obiect ca parametru la o metodă, dar este de așteptat ca acel obiect să nu fie utilizat în fluxul de execuție particular așteptat de test.
  • Stub . Un test dublu care oferă un comportament fix (de exemplu, are metode care returnează întotdeauna aceeași valoare, fără a efectua niciun calcul). Este folosit pentru a controla „intrarea indirectă” a codului supus testării.
  • Spion . Un test dublu care stochează mesajele (apeluri de metodă) pe care le primește de la codul testat, astfel încât să poată fi rulat ulterior pentru a verifica dacă anumite așteptări sunt îndeplinite.
  • Batjocură . O variantă a „spionului” în care testul dublu este, de asemenea, responsabil pentru stocarea explicită așteptărilor cu privire la comportamentul codului supus testului și verificarea faptului că acestea sunt îndeplinite.
  • Fals . Test dublu cu comportament programabil, care simulează cel al obiectului real (de exemplu un obiect care implementează o bază de date în memorie în loc să acceseze o bază de date reală).

Notă

  1. ^ a b c Robert Martin, Micul batjocoritor
  2. ^ Gerard Meszaros, xUnit Test Patterns: Refactoring Test Code , Addison-Wesley, 2007, ISBN 978-0-13-149505-0 .
  3. ^ Martin Fowler, Batjocurile nu sunt cioturi , la martinfowler.com , 2007. Accesat la 23 mai 2015 .
  4. ^ Mark Seemann, Explorarea continuumului dublurilor de testare , la msdn.microsoft.com , 2007. Accesat la 23 mai 2015 .

Elemente conexe