Chanzo huria / Crate

browser-tester

browser-tester ni runtime ya majaribio inayofanana na browser iliyo thabiti, iliyotekelezwa katika Rust safi. Huthibitisha tabia ya DOM na matukio bila kuzindua browser halisi.

Rust Runtime thabiti Majaribio ya DOM

Crate hii inafaa kwa nini

browser-tester inalenga majaribio yanayotabirika ya tabia ya fomu na UI badala ya uoanifu kamili na uonyeshaji halisi wa browser.

Runtime ya Rust pekee

Inaendesha ndani ya mchakato mmoja wa Rust. Hakuna browser ya nje, hakuna WebDriver, wala utegemezi wa Node.js.

Utekelezaji thabiti

Imejengwa kwa ajili ya majaribio yanayorudiwa kwa uthabiti: saa bandia, mbegu thabiti ya nasibu, na API wazi za kudhibiti timer.

Majaribio ya DOM + Matukio

Inaunga mkono mtiririko wa vitendo unaofanana na browser: selectors, utekelezaji wa inline script, uenezi wa matukio, na masasisho ya DOM.

Maoni ya haraka ya ndani

Mzunguko wa maoni wa haraka kwa majaribio ya UI yanayolenga fomu, huku matokeo ya hitilafu yakibaki yameelekezwa kwa selectors na thamani zinazotarajiwa/kwa kweli.

Kuanza haraka

Unda harness kutoka HTML, endesha mwingiliano, na thibitisha matokeo ya DOM. Anza na fixture ndogo kisha panua kwa API za timer na mock.

Sakinisha

cargo add browser_tester

Mfano wa msingi

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(())
}

Uso mkuu wa API

Vitendo vya Harness + uthibitishaji

Vitendo vya msingi vya majaribio ya DOM: Harness::from_html, type_text, set_checked, click, submit, na visaidizi vya uthibitishaji kwa text/thamani/imechaguliwa/uwepo.

Vipima muda thabiti

Dhibiti tabia isiyosawazishwa kwa saa bandia. Sogeza muda kwa uthabiti kwa advance_time, advance_time_to, flush, na API za kukagua timer.

Mock zilizojengwa ndani

Ingiza majibu ya fetch na matokeo ya dialog kwa set_fetch_mock, enqueue_confirm_response, na enqueue_prompt_response ili majaribio yabaki yametengwa.

Trace na uchunguzi

Washa logi za ufuatiliaji na utoe mtiririko wa matukio na timer jaribio linaposhindwa. Hii ni muhimu kwa kuchunguza mpangilio wa matukio na tabia ya kitendo chaguo-msingi.

Sera ya runtime

  • eval haiauniwi kwa makusudi ili kuhifadhi usalama na uthabiti.
  • Runtime hii inalenga hali za majaribio za vitendo, si uoanifu wa 100% na browser halisi.
  • I/O ya mtandao wa nje iko nje ya wigo; tumia fetch mocks kwa ufunikaji wa majaribio.

Ikiwa unahitaji API zaidi za browser katika test suite yako, fungua issue ukitumia fixture ndogo ili wigo na kipaumbele viweze kujadiliwa.