Cod sursă / Container.

testator de browsere.

`browser-tester` este un mediu de testare, implementat în Rust, care simulează funcționarea unui browser și oferă rezultate predictibile. Acesta validează comportamentul DOM-ului și al evenimentelor, fără a necesita lansarea unui browser real.

Rugină. Timp de execuție determinist. Testarea DOM.

La ce este bun acest produs.

"browser-tester" se concentrează pe testarea comportamentului predictibil al formularelor și interfețelor utilizator, mai degrabă decât pe compatibilitatea completă cu diverse motoare de navigare.

Mediu de execuție exclusiv pentru Rust.

Funcționează în cadrul unui singur proces Rust. Nu necesită un browser extern, WebDriver sau dependențe de Node.js.

Execuție deterministă.

Conceput pentru a permite efectuarea de teste repetabile: include un ceas simulat, o valoare inițială deterministă pentru generarea de numere aleatoare și API-uri pentru controlul explicit al temporizatorului.

Testarea DOM și a evenimentelor.

Suportă funcționalități similare celor din browsere, precum: selectarea elementelor, executarea de scripturi inline, propagarea evenimentelor și actualizarea DOM-ului.

Feedback rapid și local.

Un ciclu rapid de feedback pentru testarea interfețelor utilizator axate pe formulare, menținând în același timp mesajele de eroare concentrate pe selectori și valorile așteptate/reale.

Începere rapidă.

Creați un sistem de testare folosind HTML, executați interacțiuni și verificați rezultatele în DOM. Începeți cu un test simplu și extindeți-l cu funcții temporizate sau API-uri simulate.

Instalați.

cargo: adaugă componenta "browser_tester".

Exemplu simplu.

Suprafața principală a API-ului.

Acțiuni și afirmații legate de utilizarea eficientă a resurselor.

Operații de bază pentru testarea DOM: `Harness::from_html`, `type_text`, `set_checked`, `click`, `submit`, și funcții auxiliare pentru verificarea textului/valorii/stării de bifare/existenței.

Temporizatoare deterministe.

Controlați comportamentul asincron cu ajutorul unui ceas simulat. Avansați timpul într-un mod determinist utilizând funcțiile `advance_time`, `advance_time_to`, `flush` și API-urile de inspecție a timerelor.

Simulări integrate.

Pentru a menține testele izolate, utilizați funcțiile `set_fetch_mock`, `enqueue_confirm_response` și `enqueue_prompt_response` pentru a simula răspunsurile de la server și rezultatele dialogurilor.

Urmărire și diagnosticare.

Activați jurnalele de urmărire și extrageți informații despre fluxul de evenimente/temporizatoare atunci când un test eșuează. Acest lucru este util pentru depanarea ordinii evenimentelor și a comportamentului acțiunilor implicite.

Politica de funcționare.

  • Funcția `eval` nu este implementată în mod intenționat, pentru a menține securitatea și predictibilitatea sistemului.
  • Această versiune de testare este concepută pentru a simula scenarii practice, nu pentru a asigura compatibilitatea cu toate browserele existente.
  • Interacțiunea cu rețele externe este în afara domeniului de aplicare; utilizați simulări pentru a asigura acoperirea testelor.

Dacă aveți nevoie de API-uri suplimentare pentru browser pentru suita dumneavoastră de teste, deschideți o sesiune de discuții (un "issue") și includeți un exemplu minimal pentru a discuta despre domeniul de aplicare și prioritatea acestora.