Código aberto / Recipiente.

testador de navegadores

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.

Ferrugem. Tempo de execução determinístico. Testes de DOM.

O que este pacote faz bem.

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.

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.

Execução determinística.

Projetado para testes repetíveis: inclui um relógio simulado, uma semente aleatória determinística e APIs de controle de temporizador explícitas.

DOM + Testes de Eventos.

Suporta fluxos práticos semelhantes aos de um navegador: seletores, execução de scripts inline, propagação de eventos e atualizações do DOM.

Feedback rápido e local.

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.

Início rápido.

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.

Superfície principal da API.

Ações e afirmações relacionadas ao "Harness".

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.

Temporizadores determinísticos.

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.

Simulações integradas.

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.

Rastreamento e diagnóstico.

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.

Política de execução.

  • A função "eval" é intencionalmente desativada para preservar a segurança e a previsibilidade do sistema.
  • Esta versão de execução é voltada para cenários de teste práticos, e não para compatibilidade total com navegadores reais.
  • A entrada e saída de dados da rede externa não estão incluídas no escopo; utilize simulações de requisições para garantir a cobertura dos testes.

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.