Código abierto / Contenedor.

probador de navegadores

"browser-tester" es un entorno de pruebas que simula el comportamiento de un navegador y que está implementado completamente en Rust. Valida el comportamiento del DOM y los eventos sin necesidad de ejecutar un navegador real.

Óxido. Tiempo de ejecución determinista. Pruebas del DOM.

¿En qué destaca este producto?

"browser-tester" se centra en pruebas del comportamiento predecible de formularios e interfaces de usuario, en lugar de en la compatibilidad completa con la renderización del navegador.

Entorno de ejecución exclusivo para Rust.

Se ejecuta dentro de un único proceso de Rust. No requiere navegadores externos, WebDriver ni dependencias de Node.js.

Ejecución determinista.

Diseñado para pruebas repetibles: incluye un reloj simulado, una semilla aleatoria determinista y APIs de control de temporizador explícitas.

Pruebas de la estructura DOM y de los eventos.

Admite flujos de trabajo similares a los de un navegador, incluyendo: selectores, ejecución de scripts en línea, propagación de eventos y actualizaciones del DOM.

Retroalimentación rápida y local.

Ciclo de retroalimentación rápido para pruebas de interfaces de usuario centradas en formularios, manteniendo la información de errores enfocada en los selectores y los valores esperados/reales.

Guía de inicio rápido.

Cree un entorno de pruebas a partir de HTML, ejecute interacciones y verifique los resultados del DOM. Comience con una configuración básica y amplíela con temporizadores y APIs simuladas.

Instalar.

cargo añadir browser_tester

Ejemplo básico.

Superficie principal de la API.

Acciones y afirmaciones que generan impacto.

Operaciones básicas de pruebas DOM: `Harness::from_html`, `type_text`, `set_checked`, `click`, `submit`, y funciones de ayuda para verificar texto, valores, estados de selección y existencia.

Temporizadores deterministas.

Controle el comportamiento asíncrono utilizando un reloj simulado. Avance el tiempo de forma determinista utilizando las funciones `advance_time`, `advance_time_to`, `flush` y las API para la inspección de temporizadores.

Simulaciones integradas.

Para mantener las pruebas aisladas, utilice las funciones `set_fetch_mock`, `enqueue_confirm_response` y `enqueue_prompt_response` para simular las respuestas de las solicitudes y los resultados de los diálogos.

Trazabilidad y diagnóstico.

Habilite los registros de seguimiento y extraiga la secuencia de eventos/temporizadores cuando una prueba falle. Esto es útil para depurar el orden de los eventos y el comportamiento de las acciones predeterminadas.

Política de ejecución.

  • La función "eval" no está implementada deliberadamente para preservar la seguridad y la predictibilidad del sistema.
  • Esta versión de ejecución está diseñada para simular escenarios de prueba prácticos, y no para garantizar una compatibilidad total con navegadores reales.
  • La entrada/salida de red externa no está dentro del alcance de este proyecto; utilice simulaciones de "fetch" para cubrir los casos de prueba.

Si necesita APIs adicionales para el navegador en su conjunto de pruebas, abra un problema e incluya un ejemplo mínimo para discutir el alcance y la prioridad.