خلاصه سرچینه / Crate

browser-tester

browser-tester یو د browser په څېر ثابت testing runtime دی چې په خالص Rust کې پلي شوی. دا د DOM او event چلند د حقیقي browser له پرانیستو پرته تاییدوي.

Rust ثابت runtime DOM ازموینه

دا crate په څه کې ښه دی

browser-tester د فورم او UI د چلند د وړاندوینې وړ ازموینو ته لومړیتوب ورکوي، نه د حقیقي browser د rendering بشپړ مطابقت ته.

یوازې Rust runtime

په یوه Rust بهیر کې چلېږي. بهرني browser، WebDriver، یا Node.js ته اړتیا نه لري.

ثابت اجرا

له ډیزاین سره سم د بیا تکرار کېدونکو ازموینو لپاره جوړ شوی: fake clock، د تصادفي تخم ثبات، او واضح timer control API ګانې.

DOM + د پیښو ازموینه

د براوزر په څېر عملي جریانونو ملاتړ کوي: selectors، inline script اجرا، د پیښو خپرېدل، او DOM تازه‌کونې.

چټک ځايي feedback

د form-محور UI ازموینو لپاره چټک ځايي feedback cycle، او د ناکامۍ output په selectors او تمه شويو/اصلي ارزښتونو متمرکز ساتي.

چټک پیل

له HTML څخه harness جوړ کړئ، تعاملات وچلوئ، او د DOM پایلې تایید کړئ. له یوې کوچنۍ fixture څخه پیل وکړئ او بیا د timer/mock API ګانو له لارې پراخ یې کړئ.

نصب

cargo add browser_tester

بنسټیزه بېلګه

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

د اصلي API بڼه

د Harness کړنې + تاییدونه

د DOM د ازموینې اصلي عملیات: Harness::from_html، type_text، set_checked، click، submit، او د text/value/checked/existence لپاره د تایید مرستندویان.

ثابت timers

د fake clock له لارې asynchronous چلند کنټرول کړئ. وخت په ثابت ډول د advance_time، advance_time_to، flush، او د timer inspection API ګانو په وسیله مخکې یوسئ.

جوړ شوي mockونه

د set_fetch_mock، enqueue_confirm_response او enqueue_prompt_response له لارې fetch ځوابونه او ډیالوګ پایلې داخل کړئ، څو ازموینې جلا پاتې شي.

تعقیب او تشخیص

تعقیبي ثبتونه فعال کړئ او کله چې ازموینه ناکامه شي د event او timer جریان راوباسئ. دا د پېښو د ترتیب او د اصلي کړنې د چلند د debug لپاره ګټور دی.

د runtime پالیسي

  • eval په قصدي ډول نه دی ملاتړ شوی، څو امنیت او ثبات وساتل شي.
  • دا runtime د عملي test scenario لپاره دی، نه د حقیقي browser سره 100% مطابقت لپاره.
  • بهرنی network I/O د ساحې څخه بهر دی؛ د test coverage لپاره fetch mock وکاروئ.

که تاسو د خپلې test suite لپاره اضافي براوزر API ګانو ته اړتیا لرئ، د یوې کوچنۍ fixture سره issue پرانیزئ څو د ساحې او لومړیتوب په اړه بحث وشي.