ប្រភពបើកចំហ / កញ្ចប់ Rust

browser-tester

browser-tester គឺជាបរិស្ថានដំណើរការសាកល្បងដូចកម្មវិធីរុករកដែលកំណត់បានច្បាស់ បង្កើតឡើងក្នុង Rust សុទ្ធ។ វាផ្ទៀងផ្ទាត់ឥរិយាបថ DOM និងព្រឹត្តិការណ៍ ដោយមិនបើកកម្មវិធីរុករកពិត។

Rust អាចព្យាករណ៍បាន ការសាកល្បង DOM

កញ្ចប់នេះល្អសម្រាប់អ្វី

browser-tester ផ្តោតលើការសាកល្បងឥរិយាបថទម្រង់/UI ដែលអាចទស្សន៍ទាយបាន ជំនួសឲ្យភាពឆបគ្នាពេញលេញនៃការបង្ហាញដោយកម្មវិធីរុករក។

បរិស្ថានដំណើរការ Rust សុទ្ធ

ដំណើរការនៅក្នុងដំណើរការ Rust តែមួយ។ មិនត្រូវការកម្មវិធីរុករកខាងក្រៅ, WebDriver ឬ Node.js ទេ។

ការដំណើរការដែលអាចព្យាករណ៍បាន

បង្កើតសម្រាប់តេស្តដែលអាចធ្វើឡើងដដែលៗបាន៖ នាឡិកាក្លែងក្លាយ, គ្រាប់ពូជចៃដន្យដែលកំណត់បានច្បាស់ និង API សម្រាប់គ្រប់គ្រងកម្មវិធីកំណត់ពេលយ៉ាងច្បាស់។

ការសាកល្បង DOM និងព្រឹត្តិការណ៍

គាំទ្រលំហូរដូចកម្មវិធីរុករកជាក់ស្តែង៖ ឧបករណ៍ជ្រើស, ការដំណើរការស្គ្រីបក្នុងបន្ទាត់, ការផ្សព្វផ្សាយព្រឹត្តិការណ៍ និងការធ្វើបច្ចុប្បន្នភាព DOM។

មតិត្រឡប់លឿនក្នុងមូលដ្ឋាន

វដ្តមតិត្រឡប់លឿនក្នុងមូលដ្ឋានសម្រាប់តេស្ត UI ផ្តោតលើទម្រង់ ខណៈរក្សាទិន្នផលបរាជ័យឲ្យផ្តោតលើឧបករណ៍ជ្រើស និងតម្លៃរំពឹង/ជាក់ស្តែង។

ចាប់ផ្តើមលឿន

បង្កើតហារនេសពី HTML រត់អន្តរកម្ម ហើយផ្ទៀងផ្ទាត់លទ្ធផល DOM។ ចាប់ផ្តើមពីគំរូតូចមួយ ហើយពង្រីកដោយ 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 និងជំនួយការសម្រាប់អះអាងអំពីអត្ថបទ/តម្លៃ/បានធីក/វត្តមាន។

កម្មវិធីកំណត់ពេលដែលអាចព្យាករណ៍បាន

គ្រប់គ្រងឥរិយាបថអសមកាលដោយនាឡិកាក្លែងក្លាយ។ ដំណើរការពេលវេលាឲ្យបានកំណត់ជាមុនដោយ advance_time, advance_time_to, flush និង API សម្រាប់ពិនិត្យកម្មវិធីកំណត់ពេល។

ការក្លែងភ្ជាប់មកជាមួយ

បញ្ចូលការឆ្លើយតប fetch និងលទ្ធផលប្រអប់សន្ទនា ដោយ set_fetch_mock, enqueue_confirm_response និង enqueue_prompt_response ដើម្បីរក្សាការសាកល្បងឯករាជ្យ។

តាមដាន និងវិនិច្ឆ័យ

បើកកំណត់ហេតុតាមដាន ហើយទាញយកលំហូរព្រឹត្តិការណ៍/កម្មវិធីកំណត់ពេល នៅពេលតេស្តបរាជ័យ។ មានប្រយោជន៍សម្រាប់កែបញ្ហាលំដាប់ព្រឹត្តិការណ៍ និងសកម្មភាពលំនាំដើម។

គោលការណ៍បរិស្ថានដំណើរការ

  • eval មិនត្រូវបានគាំទ្រដោយចេតនា ដើម្បីរក្សាសុវត្ថិភាព និងភាពកំណត់បានច្បាស់។
  • បរិស្ថានដំណើរការនេះផ្តោតលើសេណារីយ៉ូតេស្តជាក់ស្តែង មិនមែនភាពឆបគ្នា 100% ជាមួយកម្មវិធីរុករកពិតទេ។
  • I/O បណ្តាញខាងក្រៅស្ថិតក្រៅវិសាលភាព; សូមប្រើការក្លែង fetch សម្រាប់ការគ្របដណ្តប់តេស្ត។

បើអ្នកត្រូវការបន្ថែម API របស់កម្មវិធីរុករកសម្រាប់សំណុំតេស្តរបស់អ្នក សូមបើកបញ្ហាមួយជាមួយនឹងគំរូតូចបំផុត ដើម្បីពិភាក្សាអំពីវិសាលភាព និងអាទិភាព។