Ambiente de execução exclusivo para a linguagem Rust.
Funciona dentro de um único processo Rust. Não requer nenhum navegador externo, WebDriver ou dependência do Node.js.
Código aberto / Recipiente.
O "browser-tester" é um ambiente de teste que simula o comportamento de um navegador, implementado em Rust puro. Ele valida o comportamento do DOM e dos eventos sem a necessidade de iniciar um navegador real.
O "browser-tester" concentra-se em testes de comportamento previsível de formulários/interfaces de usuário, em vez de verificar a compatibilidade completa de renderização em diferentes navegadores.
Funciona dentro de um único processo Rust. Não requer nenhum navegador externo, WebDriver ou dependência do Node.js.
Projetado para testes repetíveis: inclui um relógio simulado, uma semente aleatória determinística e APIs de controle de temporizador explícitas.
Suporta fluxos práticos semelhantes aos de um navegador: seletores, execução de scripts inline, propagação de eventos e atualizações do DOM.
Ciclo de feedback rápido para testes de interface de usuário focados em formulários, mantendo a saída de erros direcionada aos seletores e aos valores esperados/reais.
Crie um ambiente de teste a partir de HTML, execute interações e verifique os resultados no DOM. Comece com um ambiente de teste simples e expanda-o com temporizadores e APIs de simulação.
Instalar.
cargo adicionar browser_tester
Exemplo básico.
Operações básicas de teste do DOM: `Harness::from_html`, `type_text`, `set_checked`, `click`, `submit`, e funções auxiliares para verificar texto, valor, estado "marcado" e existência.
Controle o comportamento assíncrono utilizando um "relógio falso". Avance o tempo de forma determinística usando as funções `advance_time`, `advance_time_to`, `flush` e as APIs de inspeção de temporizadores.
Para manter os testes isolados, utilize as funções `set_fetch_mock`, `enqueue_confirm_response` e `enqueue_prompt_response` para simular as respostas de requisições e os resultados de diálogos.
Habilite os logs de rastreamento e extraia o fluxo de eventos/temporizadores quando um teste falhar. Isso é útil para depurar a ordem dos eventos e o comportamento das ações padrão.
Se você precisar de APIs de navegador adicionais para o seu conjunto de testes, abra uma solicitação (issue) com um exemplo mínimo para discutir o escopo e a prioridade.