Pruebas Unitarias: Cobertura Completa de Métodos HTTP en API
Clase 37 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 se realiza una cobertura completa en las pruebas de métodos HTTP?
Generar una cobertura completa en las pruebas unitarias de métodos HTTP es esencial para asegurar que las llamadas a los servicios se comportan como se espera en diversas situaciones. En este proceso, se requiere verificar no solo las llamadas exitosas sino también aquellos casos que manejan headers específicos, cambios de método y diferentes tipos de requests. Aquí te explicamos cómo hacerlo con un enfoque educativo y práctico, usando Angular como ejemplo.
¿Cómo se implementan los headers en una solicitud HTTP GET?
Al realizar pruebas para el método GET, es fundamental cubrir escenarios donde se emplean headers personalizados. La inclusión de headers es crucial cuando se requiere una autorización extra o para especificar el contenido que se espera recibir del servidor.
import { HttpHeaders } from '@angular/common/http';
// Creación de una nueva variable 'headers'
const headers = new HttpHeaders().set('Platzi-headers', 'christian root');
// Asignación de los headers a nuestra petición GET
httpClient.get('endpoint-url', { headers }).subscribe(response => {
// Aseguramos que nuestro método sea GET
expect(response.method).toBe('GET');
// Validamos que el valor del header corresponda con nuestra configuración
expect(response.headers.get('Platzi-headers')).toBe('christian root');
});
Con esta prueba, se espera no solo que la petición GET se ejecute exitosamente, sino que también se verifiquen los valores de los headers pautados.
¿Cómo se realizan las pruebas para el método POST?
Las pruebas para el método POST son casi análogas a las del método GET, con la diferencia principal en la naturaleza de la operación y la inclusión de un cuerpo en la solicitud. A continuación, se muestra cómo se puede realizar:
// Simulación y prueba del método POST
httpClient.post('endpoint-url', {}, { headers }).subscribe(response => {
// Aseguramos que el método que se ejecuta es POST
expect(response.method).toBe('POST');
});
En este caso, el cuerpo (body) de la solicitud se transfiere como un objeto vacío. Esta estructura permite verificar que el método POST se ejecuta correctamente, y que la aplicación procesa la solicitud adecuadamente.
¿Qué se debe hacer para lograr una cobertura total del 100%?
El desafío final es la implementación de pruebas para los métodos PUT y DELETE, asegurando que también se cubren escenarios con diferentes configuraciones, tal como se hizo con GET y POST. Aquí te animamos a desarrollar tus propias pruebas, manteniendo en mente la importancia de simular contextos reales donde estos métodos se implementen.
- Prueba del método PUT: Asegúrate de tener un cuerpo en la solicitud y verifica que la actualización de los datos se realice correctamente.
- Prueba del método DELETE: Es esencial verificar que el recurso se elimine adecuadamente, verificando tanto la correcta ejecución del método como la respuesta esperada del backend.
Completar estas pruebas te ayudará a tener un servicio robusto y confiable. Si alguna duda surge en el camino, utiliza los sistemas de discusión para buscar ayuda y compartir conocimientos. ¡Recuerda que la práctica continua es clave para mejorar tus habilidades en pruebas unitarias!