खुला स्रोत / क्रेट

browser-tester

browser-tester शुद्ध Rust मा कार्यान्वयन गरिएको निर्धारणयोग्य ब्राउजर-जस्तो परीक्षण रनटाइम हो। यसले वास्तविक ब्राउजर सुरु नगरी DOM र event व्यवहार पुष्टि गर्छ.

Rust निर्धारणयोग्य रनटाइम DOM परीक्षण

यो क्रेट कुन काममा राम्रो छ

browser-tester ले पूर्ण ब्राउजर रेन्डरिङ अनुकूलता भन्दा निर्धारणयोग्य फर्म/UI व्यवहार परीक्षणमा ध्यान दिन्छ.

Rust-मात्र रनटाइम

एउटै Rust process भित्र चल्छ। बाह्य browser, WebDriver, वा Node.js dependency आवश्यक छैन.

निर्धारणयोग्य कार्यान्वयन

पुनः चलाउन मिल्ने परीक्षणका लागि डिजाइन गरिएको: fake clock, निर्धारणयोग्य random seed, र explicit timer control API.

DOM + घटना परीक्षण

selector, inline script execution, event propagation, र DOM updates सहित व्यावहारिक browser-जस्ता flows समर्थन गर्छ.

छिटो स्थानीय प्रतिपुष्टि

फर्म-केंद्रित UI परीक्षणका लागि छिटो स्थानीय प्रतिपुष्टि चक्र, र असफल हुँदा selector तथा अपेक्षित/वास्तविक मानमा केन्द्रित आउटपुट.

छिटो सुरु

HTML बाट harness बनाउनुहोस्, interaction चलाउनुहोस्, र 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 सतह

हार्नेस कार्यहरू + दाबीहरू

मुख्य DOM परीक्षण कार्यहरू: Harness::from_html, type_text, set_checked, click, submit, र text/value/checked/existence का पुष्टि सहायकहरू.

निर्धारणयोग्य टाइमरहरू

नक्कली घडी प्रयोग गरेर असमकालीन व्यवहार नियन्त्रण गर्नुहोस्। advance_time, advance_time_to, flush, र timer inspection API मार्फत समयलाई निर्धारणयोग्य रूपमा अघि बढाउनुहोस्.

अन्तर्निर्मित मक्स

set_fetch_mock, enqueue_confirm_response, र enqueue_prompt_response प्रयोग गरेर fetch response र dialog outcome inject गर्नुहोस्, ताकि परीक्षणहरू isolated रहून्.

ट्रेस र निदान

परीक्षण असफल हुँदा trace log सक्षम गरेर event/timer flow निकाल्नुहोस्। event order र default action behavior debug गर्न उपयोगी.

रनटाइम नीति

  • सुरक्षा र निर्धारणयोग्यता जोगाउन eval जानाजानी समर्थन गरिएको छैन.
  • यो रनटाइम व्यावहारिक परीक्षण परिदृश्यहरूका लागि हो, 100% वास्तविक-ब्राउजर अनुकूलताका लागि होइन.
  • बाह्य network I/O दायराबाहिर छ; परीक्षण coverage का लागि fetch mock प्रयोग गर्नुहोस्.

तपाईंको परीक्षण सूटका लागि थप browser API चाहिन्छ भने, दायरा र प्राथमिकताबारे छलफल गर्न न्यूनतम fixture सहित एउटा समस्या दर्ता गर्नुहोस्.