Runtime ya Rust pekee
Inaendesha ndani ya mchakato mmoja wa Rust. Hakuna browser ya nje, hakuna WebDriver, wala utegemezi wa Node.js.
Chanzo huria / Crate
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.
browser-tester inalenga majaribio yanayotabirika ya tabia ya fomu na UI badala ya uoanifu kamili na uonyeshaji halisi wa browser.
Inaendesha ndani ya mchakato mmoja wa Rust. Hakuna browser ya nje, hakuna WebDriver, wala utegemezi wa Node.js.
Imejengwa kwa ajili ya majaribio yanayorudiwa kwa uthabiti: saa bandia, mbegu thabiti ya nasibu, na API wazi za kudhibiti timer.
Inaunga mkono mtiririko wa vitendo unaofanana na browser: selectors, utekelezaji wa inline script, uenezi wa matukio, na masasisho ya DOM.
Mzunguko wa maoni wa haraka kwa majaribio ya UI yanayolenga fomu, huku matokeo ya hitilafu yakibaki yameelekezwa kwa selectors na thamani zinazotarajiwa/kwa kweli.
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(())
}
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.
Dhibiti tabia isiyosawazishwa kwa saa bandia. Sogeza muda kwa uthabiti kwa advance_time, advance_time_to, flush, na API za kukagua timer.
Ingiza majibu ya fetch na matokeo ya dialog kwa set_fetch_mock, enqueue_confirm_response, na enqueue_prompt_response ili majaribio yabaki yametengwa.
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.
Ikiwa unahitaji API zaidi za browser katika test suite yako, fungua issue ukitumia fixture ndogo ili wigo na kipaumbele viweze kujadiliwa.