[MUSIC]
En la anterior conferencia y ejercicio que siguió a la conferencia,
hemos examinado el uso de pruebas unitarias en Angular.
Hemos visto cómo las diferentes partes de nuestra aplicación angular, los componentes,
los servicios, las directivas, las tuberías se pueden probar utilizando pruebas unitarias.
Pero, por supuesto, las pruebas unitarias
no revelan todo sobre la interacción entre los componentes.
Ahí es donde las estrategias de prueba de extremo a extremo nos permiten
ver que toda la aplicación funciona como una sola unidad.
Así que en esta conferencia, vamos a examinar el uso de pruebas de extremo a extremo y
qué papel juegan en la estrategia general de pruebas para nuestras aplicaciones angulares.
En el siguiente ejercicio, veremos brevemente cómo podemos llevar a cabo pruebas
end-to-end para nuestra aplicación Angular, utilizando una herramienta llamada Transportador.
Como ya hemos aprendido en la conferencia anterior, las pruebas unitarias
nos brindan una maravillosa oportunidad para probar nuestras unidades en aislamiento.
Asegurándose de que nuestras unidades realizan lo que se espera que realicen,
su lógica es correcta, y la interacción entre el componente y
su plantilla está bien establecida.
Pero, por supuesto, las pruebas unitarias no
completan la imagen completa de cómo funciona una aplicación angular típica.
No tiene unidades individuales trabajando aisladamente.
En su lugar, sus componentes interactúan con los servicios.
Los componentes pueden hacer uso de tipos.
Los servicios, a su vez, interactuarán con el backend para recuperar los datos.
Y luego el componente mismo será responsable de
renderizar las vistas usando las plantillas para el componente.
Entonces, ¿cómo funciona todo este conjunto de unidades?
¿Y cómo nos aseguramos de que el trabajo conjunto de estas unidades
esté completamente libre de problemas?
Así que ahí es donde las pruebas de extremo a extremo y en el camino, las pruebas de integración
nos ayudan a cubrir este tipo de escenarios.
Por supuesto, las pruebas unitarias juegan un papel importante en la estrategia general de pruebas.
Pero sin hacer pruebas de extremo a extremo,
no podemos estar completamente seguros de que nuestra aplicación esté funcionando como se esperaba.
Una cosa que debo enfatizar es que las pruebas unitarias son rápidas y
muy fáciles de repetir y se pueden hacer varias veces.
Las pruebas de integración y las pruebas de extremo a extremo son lentas, por lo que se utilizan
solo con moderación para confirmar que su aplicación está funcionando como se esperaba.
Así que cuando miramos nuestra estrategia general de pruebas,
podemos considerarla como organizada en forma de pirámide.
En la parte inferior de la pirámide, ocupando toda la base y
formando la base de nuestra estrategia general de pruebas, están las pruebas unitarias.
Como hemos aprendido, las pruebas unitarias nos permiten probar las unidades individuales en aislamiento,
asegurándonos de que su lógica y
la forma en que funcionan estas unidades es correcta.
Y estas pruebas pueden repetirse con mucha frecuencia.
Y de hecho, debe repetirse con frecuencia para asegurarse de que las unidades individuales
están funcionando como se esperaba.
Por supuesto, en un segundo nivel de esta estrategia serían las pruebas de integración.
¿Cómo un pequeño grupo de unidades trabaja juntos en
implementando lo que sea necesario que hagan esos grupos de unidades?
Así que tal vez podríamos probar un componente junto con
sus servicios para ver cómo ocurre el flujo de información entre ellos.
Pero en la parte superior de esta pirámide está de extremo a extremo pruebas donde
nos fijamos en la aplicación general.
Y qué tan bien está funcionando la aplicación general y
cumple con sus requisitos esperados.
Así que ahí es donde vemos el uso de pruebas de extremo a extremo.
Como ya puede esperar con este diagrama, las pruebas de extremo a extremo son lentas.
Y por lo tanto, no realizamos pruebas de extremo a extremo con mucha frecuencia, en su lugar, la prueba de unidad
constituye la estrategia principal para nuestras pruebas de nuestra aplicación angular.
Las pruebas de extremo a extremo contribuyen en el panorama general, pero no se hacen tan
con frecuencia, pero siguen siendo una parte esencial de nuestra estrategia de pruebas.
Entonces, ¿cómo llevamos a cabo pruebas de extremo a extremo?
Hablemos brevemente de las herramientas que están disponibles para nosotros.
El entorno de pruebas angulares para pruebas de extremo a extremo
es compatible con una herramienta llamada Transportador.
¿Quién dice que los frikis no tienen sentido del humor?
Transportador, Angular, ahí tienes.
Entonces, ¿qué es exactamente Transportador?
Transportador es, como es de esperar, un programa de nodos.
Así que esto nos permite llevar a cabo pruebas de extremo a extremo.
Así que Transportador ejecuta las pruebas contra su aplicación.
Así que Transportador carga su aplicación en un navegador e interactúa con
la aplicación al igual que un usuario real interactuará con su aplicación.
Así que estamos buscando interactuar con su aplicación,
aunque programáticamente, pero realizando el tipo de operaciones que
un usuario típico realizará como hacer clic en enlaces, rellenar formularios.
Enviar formularios, navegar a diferentes partes de su solicitud y así sucesivamente.
Así que aquí es donde Transportador aprovecha el uso de un WebDriver para controlar los navegadores
en los que se pueden llevar a cabo las pruebas.
Uno de esos marcos de aplicación se llama Selenium Framework,
que se usa para hacer pruebas automatizadas dentro de los navegadores.
Si estás usando Chrome como parte de tu estrategia de prueba o Firefox,
entonces puedes usar lo que se llama conexión directa.
que está disponible a través de un transportador para conectarse directamente a estos navegadores y
realizar pruebas dentro de esos navegadores.
Ahora, las propias pruebas aprovechan el marco de ajuste para
expresando la prueba.
Así que aún vería al usuario describir un int y
antes de cada uno que haya visto con pruebas unitarias.
Excepto que ahora, vamos a aprovechar el soporte del transportador para
siendo capaz de generar interacciones reales como el usuario con nuestra aplicación
usando código.
Así que eso es lo que aprenderemos en el ejercicio que sigue a esta particular conferencia
.
Vamos a hacer uso de Transportador y escribir nuestras estrategias de prueba de extremo a extremo.
Y, por supuesto, aproveche el soporte de la CLI angular para
llevando a cabo pruebas de extremo a extremo en el ejercicio que sigue a esta conferencia.
[MÚSICA]