– Rica interacción entre cliente y servidor via AJAX. • Misión: Correr las pruebas unitarias del cliente y de integración con el servidor como parte del proceso de integración continua.
– Tipos de pruebas • ¿Cómo hacer las pruebas de integración? – To Mock or Not To Mock • ¿Cómo correr automáticamente las pruebas unitarias y de integración?
entre el cliente y el servidor. • ¿Por qué? – Detección temprana de errores causados por cambios en el servidor o el cliente. – Automatizar las pruebas. • ¿Cuándo? ¿Dónde? – En el servidor de CI. – CI (en cada commit) vs Nightly (periódicos)
¡Selenium! • Permite controlar el navegador programáticamente • WebDriver API – independiente del browser • Múltiples bindings a nivel de lenguajes • Múltiples drivers para navegadores – Algunos navegadores ya tienen el driver built in (Firefox, PhantomJS) – Ghostdriver: PhantomJS Webdriver
objetos a testear en wrappers – Tests más fáciles de escribir y de entender – Encapsular en wrappers la interacción con Selenium – ¿Cómo probar llamadas asincronicas? • Client-side wrappers • Sacar screenshots en los tests, útil a la hora de diagnosticar errores – Permite también hacer pruebas visuales automáticas – Advertencias • PhantomJS ≈ Chrome, Safari, etc. • Third Party Issues (Webdrivers, browsers, componentes externos)