Отворен код / пакет

browser-tester

browser-tester е детерминистичка тест околина слична на прелистувач, имплементирана целосно во Rust. Го проверува DOM и однесувањето на настаните без стартување вистински прелистувач.

Rust Детерминистичка околина DOM тестирање

За што е добар овој пакет

browser-tester се фокусира на предвидливо тестирање на однесувањето на формуларите и UI, а не на целосна компатибилност со прикажување како вистински прелистувач.

Околина само со Rust

Работи во еден Rust процес. Нема зависност од надворешен прелистувач, WebDriver или Node.js.

Детерминистичко извршување

Од почеток е создаден за повторливи тестови: лажен часовник, детерминистичко почетно семе и експлицитни API-ја за контрола на тајмери.

DOM и тестирање на настани

Поддржува практични сценарија слични на прелистувач: избирачи, извршување вградени скрипти, ширење на настани и DOM ажурирања.

Брзи локални повратни информации

Брз циклус на повратни информации за UI тестови фокусирани на формулари, со пораки за грешки насочени кон избирачи и очекувани/вистински вредности.

Брз почеток

Создајте Harness од 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 и помошни проверки за text/value/checked/existence.

Детерминистички тајмери

Контролирајте асинхроно однесување со лажен часовник. Времето се поместува детерминистички со advance_time, advance_time_to, flush и API-ја за проверка на тајмери.

Вградени симулации

Вметнете fetch одговори и исходи од дијалози со set_fetch_mock, enqueue_confirm_response и enqueue_prompt_response за тестовите да останат изолирани.

Следење и дијагностика

Вклучете дневници за следење и извлечете го текот на настаните и тајмерите кога тестот не успева. Корисно е за дебагирање на редоследот на настаните и стандардното однесување.

Политика на околината

  • eval намерно не е поддржан за да се зачуваат безбедноста и детерминизмот.
  • Оваа околина е наменета за практични тест сценарија, а не за 100% компатибилност со вистински прелистувач.
  • Надворешен мрежен I/O не е во опсегот; користете fetch симулации за покриеност на тестовите.

Ако ви требаат дополнителни API-ја на прелистувач за вашиот тест пакет, отворете пријава со минимален примерок за да разговараме за опсегот и приоритетот.