Bienvenida e Introducción

1

¿Qué son las pruebas unitarias?

2

¿Por qué hacer pruebas unitarias?

Creando un framework de pruebas básico

3

Mi primera prueba unitaria en JavaScript

4

Las funciones expect() y it()

5

Organizando el código para correr en la web

6

Organizando el código para correr utilizando nodejs

Análisis estático de código

7

Herramientas de análisis estático de código

8

ESLint: Agregando alertas a nuestro código con ECMA Script

9

Herramientas de corrección de estilo

10

Herramientas de tipado

Trabajando con Jasmine en el frontend

11

Profundización en SpyOn: Comandos más utilizados y cómo ponerlos a prueba

12

Configurar un ambiente de trabajo para trabajar con el framework jasmine

13

Configurar Jasmine utilizando Node.js

14

Primer set de pruebas con Jasmine

15

Diccionario Jasmine

Probando Nodejs apps con Jasmine

16

Introducción al módulo de testing del lado del servidor

17

Configurando el proyecto Jasmine utilizando npm

18

Agregando Plugins a Jasmine

19

Configurando nuestro reporter

20

Pruebas en el servidor: Verificando un status 200 en GET

21

Pruebas en el servidor: Probando el método GET y Reto con FindByID

22

Pruebas en el servidor: Probando el método POST (request to server)

23

Pruebas en el servidor: Probando el método POST (request to PDF)

Probando Angular apps con Jasmine

24

Tipos de pruebas

25

Pruebas en el frontend: Probando el componente principal (App)

26

Configurando los ciclos de vida

27

Creando las pruebas del formulario: Configuración

28

Creando las pruebas necesarias para un formulario. (Primeras pruebas)

29

Probando el caso de exito al guardar un elemento en el servidor.

30

Trabajando con event emitters

31

Testeando ngZone y navegación.

32

Configurando el TestBed de el componente PINs

33

Creando un espia sobre el objecto window

Pruebas de integración de Angular apps con Jasmine

34

Ejecutando funciones a través de eventos en el template

35

Probando la navegación

36

Probando servicios con HTTP

37

Completando las pruebas del servicio HTTP

38

Cierre del curso

Curso de Unit Testing para MEAN con Jasmine

Curso de Unit Testing para MEAN con Jasmine

Cristian Daniel Marquez Barrios

Cristian Daniel Marquez Barrios

¿Por qué hacer pruebas unitarias?

2/38

Lectura

La productividad, el valor generado, el presupuesto, el tiempo, son consideradas las variables más importantes en cualquier tipo de proyecto. Si le preguntas al dueño de la empresa el presupuesto va a ser lo principal. Si hablas con el dueño del producto, la productividad y el valor agregado serán su enfoque. Si hablas con el cliente probablemente el tiempo es lo más importante. Es por ello que vale la pena preguntarnos, ¿deberíamos reservar un espacio para la creación de pruebas unitarias?

Crear pruebas unitarias implica la creación de una aplicación en paralelo que permita ejecutar y probar nuestro código base. Es decir, dependiendo de las habilidades del programador, el tiempo dedicado a su creación puede llegar a ser igual o en algunos casos mayor al tiempo empleado para escribir la solución.

Veamos esto con un ejemplo. Imagina que una empresa tiene la tarea de crear un formulario para registrar asistentes a una conferencia. Como el presupuesto es ajustado, el grupo de desarrollo decide crear la solución sin un sistema de pruebas. La primera fase del proyecto fue un “éxito”. El equipo de pruebas encuentra un problema con las validaciones del formulario y un error en consola debido a un tipo de dato. El equipo de desarrollo resuelve el problema y finalmente se puede entregar el producto.

De la situación anterior podemos analizar lo siguiente:

  1. Si bien la primera entrega del producto fue exitosa, la falta de un sistema de alertas durante el tiempo de desarrollo, hizo que errores relacionados con tipos de datos solo fueran detectados durante las pruebas de calidad.

  2. La aplicación requirió de un nuevo ciclo de desarrollo para arreglar el problema.

  3. Debido al tamaño de la aplicación realizar cambios serán bastante rápidos.

Ahora bien, supongamos que ese mismo sistema se utiliza para otro cliente pero esta vez se le debe agregar un sistema de autenticación. Una persona del equipo decide abandonar la empresa. El proceso desarrollo fue un éxito. El tiempo estimado se incrementó. Nuevamente no se creó un sistema de pruebas. Se requirieron dos rondas de pruebas adicionales y de desarrollo para poder realizar la entrega del producto.

Analicemos la situación anterior:

  1. El proyecto se atraso debido a la salida y al proceso de aprendizaje del nuevo desarrollador.

  2. Nuevamente no se realizó un sistema de pruebas en la aplicación.

  3. Se realizaron dos rondas de pruebas y de desarrollo adicionales a lo planeado.

¿Qué puedes concluir de estas situaciones?, ¿Cómo podrías mejorar el proceso de desarrollo de esta aplicación? Como ya te imaginarás, una de las cosas que se pudo mejorar sería la implementación de un sistema de pruebas. Sin embargo, ¿Cómo las pruebas unitarias te pueden ayudar en tus desarrollos?

Las pruebas unitarias

Comencemos con la definición. Las pruebas unitarias no son más que un programa que permite probar nuestro código base. Es decir, las pruebas unitarias implica la creación de pequeños extractos de código que ejecutarán todas las líneas dentro de una función, de tal forma que se pueda verificar su comportamiento.

El tiempo dedicado para la creación de las pruebas unitarias debe ser incluido durante la fase de desarrollo, de tal forma que se pueda crear la solución y las pruebas relacionadas con el problema en un mismo momento.

¿Para qué sirven las pruebas unitarias?

Las pruebas unitarias sirven para:

  1. Red de seguridad: Cada vez que creas una prueba unitaria, estas analizado el código en partes pequeñas, por lo tanto, es posible crear un sistema de alertas ante futuros cambios en el código.

  2. Documentación: Debido a que tenemos una aplicación que va a ejecutar las líneas de código de nuestro programa, es el momento perfecto para documentar y verificar lo que esperamos que pase. Es decir, vamos a explicar nuestro código, mostrando cómo se deben utilizar.

  3. Calidad de código: Durante el proceso de creación de pruebas unitarias además de detectar errores, es el momento ideal para mejorar la solución o aplicar mejores patrones de diseño a nuestro código.

  4. Reducción de costos: Todos los puntos anteriores van a ayudar con la reducción de costos. Contar con una documentación adecuada nos va ayudar con futuras modificaciones al código o la incorporación de nuevos desarrolladores al proyecto. La red de seguridad y la calidad en el código va a permitir la detección de errores temprana, por lo tanto, va a prevenir que te atrases en las entregas.

Conclusiones

Incorporar pruebas unitarias en un proyecto es una de las mejores decisiones que puedes tomar. Debes tener en cuenta que las pruebas no solo te van a ayudar a reducir costos, estas son creadas con el propósito de ayudarnos entre desarrolladores durante el proceso de creación de código.

Contar un set de pruebas puede tomar tiempo al principio, pero con práctica va a ser intuitivo y rápido. Los conceptos aprendidos durante este curso te van a ser de utilidad no solo para las pruebas creadas utilizando Jasmine, si no vas a tener las bases para la creación de tu propio sistema de pruebas o como bases para comenzar a utilizar otros frameworks.

Aportes 9

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Algunos creen que las pruebas unitarias no son de mucha importancia, algunas empresas también son reacias con este punto, suelen decir, se supone que estoy contratando un desarrollador de calidad, por lo tanto no debería tener problemas en el código, las pruebas van mucho mas allá de ello. Es muy importante realizarlas, ya que también nos ayudan a encontrar errores donde aparentemente todo estaba funcionando bien. A darle con todo en este curso.

Oro molido!!!

Hola, sólo tengo comentarios sobre un par de typos, nada que afecte la comprensión pero quisiera compartirles:
reserver: ¿deberíamos reserver un espacio para la creación de pruebas unitarias?.
realizar dos veces: Debido al tamaño de la aplicación realizar realizar cambios serán bastante rápidos.
Por todo lo demás excelente, bien explicado, gracias.

La verdad siempre puse como algo sin tanta importancia las pruebas unitarias, pero ahora con esta lectura puedo darme cuenta lo bueno que es hacerlas, ya que es cierto gastaré mas tiempo en el desarrollo pero me aseguro de no volver a gastar tiempo para correción de bugs cuando el proyecto pase las pruebas unitarias.

Excelente explicación!

Interesante!! Vamonos con el curso 💻

A mi forma de ver, creo que por mas poco que sea el presupuesto siempre deberiamos aplicarlas, ya que en un caso digamos donde seamos independientes y tengamos corto tiempo de realizar el codigo, lo ideal seria realizar las pruebas para podernos asegurar de tener que gastar mas tiempo en el desarrollo y poder cumplir mejor los tiempos de entrega

El tema de tener un control de pruebas unitarias, es ideal para que el proyecto tenga los menores errores posibles.

Muy buena introducción a las pruebas unitarias. hoy en dia ya son un requisito en varias empresas para poder entregar el código a mantenimiento.