Åpen kildekode / Rust-pakke

browser-tester

browser-tester er et deterministisk, nettleserlignende testmiljø implementert i ren Rust. Det validerer DOM- og hendelsesoppførsel uten å starte en ekte nettleser.

Rust Deterministisk kjøretid DOM-testing

Hva denne pakken er god til

browser-tester fokuserer på forutsigbare tester av skjema- og UI-oppførsel, ikke full kompatibilitet med ekte nettlesergjengivelse.

Kun-Rust-kjøretid

Kjører i én enkelt Rust-prosess. Ingen ekstern nettleser, WebDriver eller Node.js-avhengighet.

Deterministisk kjøring

Laget for repeterbare tester fra bunnen av: falsk klokke, deterministisk startfrø og eksplisitte API-er for timerstyring.

DOM- og hendelsestesting

Støtter praktiske nettleserlignende flyter: selektorer, kjøring av innebygde skript, hendelsesforplantning og DOM-oppdateringer.

Rask lokal tilbakemelding

Rask lokal tilbakemelding for UI-tester med fokus på skjemaer, samtidig som feilutdata holder fokus på selektorer og forventede/faktiske verdier.

Rask start

Opprett et harness fra HTML, kjør interaksjoner og verifiser DOM-resultater. Start med et lite testoppsett og utvid med API-er for timere og simuleringer.

Installer

cargo add browser_tester

Grunnleggende eksempel

use browser_tester::Harness;

fn main() -> browser_tester::Result<()> {
    let html = r#"..."#;
    let mut h = Harness::from_html(html)?;

    h.type_text("#name", "Alice")?;
    h.click("#submit")?;
    h.assert_text("#result", "Hello, Alice")?;

    Ok(())
}

Hoved-API-grensesnitt

Harness-handlinger og påstander

Kjerneoperasjoner for DOM-testing: Harness::from_html, type_text, set_checked, click, submit og hjelpelogikk for påstander om tekst/verdi/avkrysset/tilstedeværelse.

Deterministiske timere

Kontroller asynkron oppførsel med en falsk klokke. Flytt tiden deterministisk framover med advance_time, advance_time_to, flush og API-er for inspeksjon av timere.

Innebygde simuleringer

Sett inn fetch-svar og dialogutfall med set_fetch_mock, enqueue_confirm_response og enqueue_prompt_response for å holde tester isolerte.

Sporing og diagnostikk

Aktiver sporingslogger og hent ut hendelses- og timerflyten når en test feiler. Nyttig for å feilsøke rekkefølgen på hendelser og standardhandlinger.

Kjøretidspolitikk

  • eval støttes bevisst ikke for å bevare sikkerhet og determinisme.
  • Dette kjøretidsmiljøet retter seg mot praktiske testscenarier, ikke 100 % kompatibilitet med ekte nettlesere.
  • Ekstern nettverks-I/O er utenfor omfanget; bruk fetch-simuleringer for testdekning.

Hvis du trenger flere nettleser-API-er i testpakken din, åpne en sak med et minimalt testoppsett for å diskutere omfang og prioritet.