Open source / Contenitore.

testatore di browser.

"browser-tester" è un ambiente di test che simula il comportamento di un browser, implementato interamente in Rust. Permette di verificare il funzionamento del DOM e degli eventi senza avviare un browser reale.

Ruggine. Tempo di esecuzione deterministico. Test di DOM.

A cosa serve questo componente.

"browser-tester" si concentra su test che verificano il comportamento prevedibile dei moduli e dell'interfaccia utente, piuttosto che sulla compatibilità completa con i diversi browser.

Ambiente di esecuzione solo per Rust.

Funziona all'interno di un singolo processo Rust. Non richiede browser esterni, WebDriver o dipendenze da Node.js.

Esecuzione deterministica.

Progettato per test ripetibili: include un orologio simulato, un generatore di numeri casuali deterministico e API per il controllo esplicito del timer.

Test di componenti DOM e gestione eventi.

Supporta flussi di lavoro simili a quelli dei browser, tra cui la selezione di elementi, l'esecuzione di script inline, la propagazione degli eventi e gli aggiornamenti del DOM.

Feedback rapido e locale.

Ciclo di feedback rapido per i test dell'interfaccia utente incentrati sui moduli, mantenendo al contempo l'output degli errori focalizzato sui selettori e sui valori attesi/effettivi.

Avvio rapido.

Creare un ambiente di test a partire da codice HTML, gestire interazioni e verificare i risultati relativi al DOM. Iniziare con un ambiente di test semplice e ampliarlo aggiungendo funzionalità come timer e API di simulazione.

Installa.

Aggiungi "browser_tester" al carico.

Esempio di base.

Superficie principale dell'API.

Azioni e affermazioni per il potenziamento personale.

Operazioni fondamentali per i test DOM: `Harness::from_html`, `type_text`, `set_checked`, `click`, `submit`, e funzioni di supporto per le verifiche relative a testo, valore, stato selezionato e presenza.

Timer deterministici.

Controllare il comportamento asincrono utilizzando una "clessidra" simulata. Avanzare il tempo in modo deterministico utilizzando le funzioni `advance_time`, `advance_time_to`, `flush` e le API per l'ispezione dei timer.

Simulazioni integrate.

Per mantenere i test isolati, è possibile utilizzare le funzioni `set_fetch_mock`, `enqueue_confirm_response` e `enqueue_prompt_response` per simulare le risposte di recupero dati e i risultati dei dialoghi.

Tracciamento e diagnostica.

Abilitare i log di traccia ed estrarre i flussi di eventi/timer quando un test fallisce. Utile per il debug dell'ordine degli eventi e del comportamento delle azioni predefinite.

Politica di esecuzione.

  • La funzione "eval" non è supportata intenzionalmente per preservare la sicurezza e la prevedibilità del sistema.
  • Questa versione di prova è progettata per simulare scenari di test reali, ma non garantisce una compatibilità al 100% con tutti i browser.
  • L'interazione con la rete esterna non rientra nell'ambito di questo progetto; utilizzare simulazioni di fetch per garantire la copertura dei test.

Se avete bisogno di ulteriori API per browser per il vostro set di test, aprite una segnalazione (issue) includendo un esempio minimo per discutere l'ambito e la priorità.