Cum se testează codul R care folosește LLMS, API -uri sau baze de date

URMĂREȘTE-NE
16,065FaniÎmi place
1,142CititoriConectați-vă

(Acest articol a fost publicat pentru prima dată pe Jakub :: Sobolewskiși a contribuit cu drag la R-Bloggers). (Puteți raporta problema despre conținutul de pe această pagină aici)


Doriți să vă împărtășiți conținutul pe R-Bloggers? Faceți clic aici dacă aveți un blog sau aici dacă nu.

Codul dvs. se bazează adesea pe sisteme externe-Llms, API-uri, baze de date sau biblioteci terțe. Deși acestea sunt esențiale pentru funcționalitate, nu trebuie să facă parte din testele tale.

Iată un model practic pentru a vă testa codul fără a vă baza pe dependențe externe, astfel încât testele dvs. rămân rapide, fiabile și ieftine.

🧪 Consultați acest model cum să testați codul cu dependențe externe.

🚫 De ce testarea dependențelor externe este o idee proastă

Dacă testați codul dvs. care apelează la o API așa cum este:

  1. Testele vor fi lentedeoarece vor trebui să aștepte să răspundă resursele externe.
  2. Testele vor fi fulgerîntrucât resursele externe nu pot fi întotdeauna disponibile sau pot returna rezultate diferite.
  3. Testele vor fi scumpedeoarece poate fi necesar să plătiți pentru resursele externe.

Sau Testele nu vor fi scrise delocîntrucât par să existe prea multe obstacole, s -ar putea să nu merite.

Alternativa este să scrii teste numai pentru codul pe care îl dețineți.

✅ Testează doar codul pe care îl deții

Cheia este să testați modul în care codul dvs. se comportă atunci când interacționați cu resursele externe, fără a le folosi pe cele reale. Iată cum:

  1. Creați interfețe pentru interacțiunea cu resursele externe.
  2. Utilizați obiecte false sau machete pentru a simula resursele externe din testele dvs.
  3. Scrieți teste care verifică comportamentul codului dvs. atunci când interacționați cu obiectele false sau cu machetele.
  4. Utilizați obiecte reale în codul de producție, dar utilizați obiecte false sau machete în teste.

În acest fel, vă puteți testa codul fără a vă baza pe resursele externe, făcând testele dvs. rapide, fiabile și ieftine.

1. Creați interfețe

Nu apelează la coduri hard la resurse externe. În schimb:

  • Creați interfețe care definesc modul în care codul dvs. vorbește cu acestea.
  • Utilizați injecția de dependență pentru a trece aceste interfețe în funcțiile sau clasele dvs.

Acest lucru face ușor să înlocuiți implementările reale cu falsuri sau machete în timpul testării.

2. Folosiți obiecte false sau machete

Simulați sistemele externe în teste folosind obiecte false sau machete:

  • Mimică forma și comportamentul răspunsurilor API/bazei de date preconizate.
  • Controlează cazurile de margine (de exemplu, intervale de timp, erori) într -un mod previzibil.

Acest lucru vă ajută să testați modul în care codul dvs. gestionează diverse scenarii fără a vă baza pe serviciul real.

3. Scrieți teste

Testați comportamentul codului dvs. afirmând:

  • Apeluri corecte la interfața falsă/batjocoritoare.
  • Manevrarea corectă a succesului, eșecului și cazurilor de margine.

Urmați modelul Aranjare – Act – Asemare pentru fiecare test și mențineți fiecare test concentrat pe un rezultat preconizat.

Creați -vă obiectele la fel ca în codul de producție, dar utilizați obiectele false sau machetele în loc de obiectele reale.

4. Folosiți obiecte reale în codul de producție

În producție:

  • Instaniați versiunile reale ale dependențelor.
  • Folosiți o funcție din fabrică pentru a le crea. Acest lucru menține codul de producție curat și testele dvs. flexibile.

Puteți depăși în continuare dependențele în teste în timp ce utilizați valorile implicite în producție.


🧪 Consultați Exemplul despre cum să testați o funcție care utilizează {Ellmer}.

Resursele externe sunt esențiale pentru sistemul dvs., dar nu aparțin testelor de unitate. Izolându -le prin interfețe și machete, obțineți teste mai rapide, mai fiabile și mai întreținute – păstrând în timp ce codul de producție la fel de curat.

Dominic Botezariu
Dominic Botezariuhttps://www.noobz.ro/
Creator de site și redactor-șef.

Cele mai noi știri

Pe același subiect

LĂSAȚI UN MESAJ

Vă rugăm să introduceți comentariul dvs.!
Introduceți aici numele dvs.