Pruebas Unitarias en Formularios Reactivos con Angular
Clase 28 de 38 • Curso de Unit Testing para MEAN con Jasmine
Contenido del curso
- 11
Pruebas Unitarias con Jasmine: Uso de spyOn para Simular Funciones
03:08 - 12

Configuración de Jasmine para Pruebas de Frontend
07:48 - 13

Configuración de Jasmine en Node.js para Pruebas Unitarias
06:18 - 14

Pruebas Unitarias en JavaScript con Jasmine: Uso de Funciones Básicas
09:10 - 15
Pruebas Unitarias con Jasmine: Matchers, Espías y Ciclos de Vida
04:11
- 16

Pruebas Unitarias con Jasmine en Node.js y Angular
02:54 - 17

Configuración de Pruebas Unitarias en Node.js con Jasmine
07:47 - 18

Configuración avanzada de Jasmine y reportes en Node.js
07:00 - 19

Implementación de Cobertura de Código con InstaBoot.js y NGC
03:29 - 20

Pruebas Unitarias de Servidor Express con Método GET en Node.js
14:10 - 21

Pruebas Unitarias de Código 500 en Métodos GET
04:44 - 22

Pruebas del Método PAUSE en Desarrollo Web
12:24 - 23

Pruebas de Métodos POST, PUT y DELETE en JavaScript Asíncrono
07:49
- 24

Pruebas Unitarias e Integración en Angular con Jasmine
03:53 - 25

Pruebas Unitarias de Componentes en Angular con Jasmine
09:21 - 26

Pruebas Unitarias en Angular: Rutas y Ciclos de Vida con Jasmine
08:22 - 27

Pruebas Unitarias en Angular: Simulación de Servicios y Componentes
12:48 - 28

Pruebas Unitarias en Formularios Reactivos con Angular
10:48 - 29

Pruebas Unitarias Avanzadas en Formularios Reactivos de Angular
10:03 - 30

Pruebas Unitarias en Angular: Navegación y Outputs HTML
07:48 - 31

Pruebas Unitarias en Angular: Testeo de Componentes y Servicios
14:56 - 32

Pruebas Unitarias en Jasmine: Espías y Stubs en Angular
10:55 - 33

Pruebas de Espionaje en Objetos Globales y Métodos en JavaScript
07:21
¿Cómo iniciar pruebas unitarias en un formulario reactivo con Angular?
Antes de lanzarnos a las pruebas unitarias, es vital asegurar que tu código está en orden. Hemos configurado los imports necesarios, incluyendo Stub classes y los formularios reactivos. Ahora, el objetivo principal es verificar que la inicialización y estructuración del componente se desarrollen de forma correcta.
¿Qué debe revisarse primero?
Al inicializar el componente, es crucial examinar dos formularios:
- Primer grupo de formularios:
- Tres propiedades (inputs) agrupadas en el formulario.
- Segundo grupo de formularios:
- Dos inputs, un input ordinario y un array que podría tener más elementos.
El objetivo inicial es asegurarse de que toda la declaración de estos formularios sea precisa y que los controles esperados estén correctamente configurados.
// Código de ejemplo para la inicialización de pruebas
describe('cuando el componente es inicializado', () => {
it('debería crear los formularios correctamente', () => {
const keys = Object.keys(component.firstGroup.controls);
expect(keys).toEqual(['title', 'author', 'description']);
});
});
¿Cómo prevenir errores al añadir nuevos controles?
Agregar nuevas pruebas es un buen mecanismo para asegurarse de que cualquier alteración, como añadir o eliminar controles, se detecten de manera oportuna:
- Al crear una nueva función de prueba se espera que esta alerte si se agregan o quitan elementos sin las expectativas debidas.
// Código de ejemplo para agregar pruebas de seguridad
it('debería verificar que los grupos del formulario son creados', () => {
const assetsKeys = Object.keys(component.secondFormGroup.controls);
expect(assetsKeys).toEqual(['firstAsset', 'assets']);
});
¿Cómo probar la funcionalidad de agregar elementos en un array de formularios?
El desafío aquí es evaluar una función llamada addAsset, diseñada para añadir elementos al array en el segundo formulario:
- Los elementos nuevos deben ser controlados por un índice apropiado, donde el primer elemento tiene la clave
0y el segundo1.
// Ejemplo de código para prueba de adición de assets
it('should add new group into the array', () => {
const controlArray = component.secondFormGroup.controls['assets'] as FormArray;
component.addAsset();
component.addAsset();
expect(controlArray.length).toBe(2);
});
¿Cuáles son los errores comunes a evitar al realizar pruebas?
Uno de los errores más comunes es intentar realizar un spec en bloques incorrectos como describe, donde el componente y sus instancias aún no se han creado en beforeEach. De este modo, ten en cuenta:
- Siempre utiliza
beforeEachpara inicializar las instancias y componentes necesarios antes de ejecutar cualquierit. - Mueve cualquier lógica o pruebas dentro de un bloque
itpara asegurar que se ejecute en el contexto correcto.
Al seguir estas directrices y consejos, no solo desarrollas pruebas unitarias robustas, sino que también garantizas la consistencia y previsibilidad en el ciclo de vida de tus aplicaciones Angular. Con la práctica, te volverás más eficiente al escribir pruebas unitarias, asegurando que tu código se mantenga impecable y libre de bugs. ¡Adelante, sigue aprendiendo y mejorando tus habilidades!