En ciencias computacionales, llamamos pruebas al código que escribimos para probar otra parte del código, así mismo, llamamos pruebas unitarias a aquellas que están diseñadas para probar pedazos individuales de código.
Las pruebas unitarias nos ayudan en muchos aspectos, tales como:
- A la detección temprana de errores o bugs
- A escribir mejor código, motivándonos a dividir nuestra solución en problemas individuales para cada método o estructura de nuestro código
- A describir el problema que queremos resolver
- A asegurarnos que nuevos cambios, no introducen bugs en otras partes de la aplicación
- Entre otros
En Rails, es común que sigamos un flujo de código basado en una metodología de nombre TDD, Test Driven Development. TDD es una de muchas metodologías para escribir código de pruebas, por lo que no ahondaremos en el concepto, de éste rescataremos el flujo de pruebas que funciona de la siguiente manera.
- Escribimos una prueba para código que aún no existe. Ejemplo: Probar que podemos crear usuarios, antes de escribir el código para crear usuarios
- Corremos o ejecutamos la prueba para ver que falle
- Escribimos el código para la prueba. Ejemplo: Escribimos la funcionalidad para crear usuarios
- Volvemos a ejecutar la prueba para ver que pase
- Refactorizamos o mejoramos el código
- Volvemos a ejecutar la prueba para asegurarnos que siga pasando
Decimos que una prueba pasa, cuando la afirmación de la prueba se cumple, así mismo, decimos que una prueba falla cuando la afirmación de la prueba no se cumple.
Para escribir pruebas, Rails viene preconfigurado con un framework de pruebas: MiniTest. Aunque cubrir a fondo este framework requeriría un curso propio, vamos a aprender los fundamentos del uso y la sintaxis para la redacción de pruebas en nuestra aplicación, de esta manera nos aseguraremos de que el código funciona correctamente, sin tener que probarlo manualmente.
Un punto importante a considerar cuando hablamos de pruebas automatizadas, es que todos probamos el software que creamos, la única diferencia es que algunos lo prueban de manera manual poniéndolo en funcionamiento, y otros de manera automatizada con herramientas de pruebas automatizadas. Conforme va creciendo tu aplicación, es más complejo probar el código sin la intervención de herramientas de automatización, por lo que te recomiendo ampliamente dedicar tiempo a la implementación de pruebas desde el inicio de tu aplicación.
Continuemos.
-
Módulo 1 | 10 clases
Introducción al framework
expand_more-
play_circle_outline
Clase 1
Presentación del curso de Rails
-
play_circle_outline
Clase 2
Qué es Ruby on Rails
-
play_circle_outline
Clase 3
Conocimientos previos
-
play_circle_outline
Clase 4
Instalación en Mac
-
play_circle_outline
Clase 5
Instalación en Windows
-
play_circle_outline
Clase 6
Crear un proyecto de Ruby on Rails
-
play_circle_outline
Clase 7
Explorar los archivos del proyecto
-
play_circle_outline
Clase 8
Componentes del framework
-
play_circle_outline
Clase 9
Convención sobre configuración
-
play_circle_outline
Clase 10
Ambientes de desarrollo
-
-
Módulo 2 | 9 clases
Primeros pasos con Rails
expand_more-
play_circle_outline
Clase 1
Primera vista y primera ruta. Hola mundo
-
play_circle_outline
Clase 2
Motor de render para las vistas
-
play_circle_outline
Clase 3
Cómo responde a una petición web Ruby on Rails
-
play_circle_outline
Clase 4
Introducción a las rutas
-
play_circle_outline
Clase 5
La ruta principal
-
play_circle_outline
Clase 6
Métodos en las vistas (Helpers)
-
play_circle_outline
Clase 7
Formularios en Rails
-
play_circle_outline
Clase 8
Leer parámetros en un controlador
-
play_circle_outline
Clase 9
Generadores de código
-
-
Módulo 3 | 10 clases
Manejo de datos
expand_more-
play_circle_outline
Clase 1
Introducción al bloque
-
play_circle_outline
Clase 2
MIgraciones en Rails
-
play_circle_outline
Clase 3
Crear la base de datos y primer migración
-
play_circle_outline
Clase 4
ID y timestamps
-
play_circle_outline
Clase 5
Modelos
-
play_arrow
Clase 6
Pruebas unitarias
-
play_circle_outline
Clase 7
Primera prueba unitaria
-
play_circle_outline
Clase 8
Primera validación del modelo
-
play_circle_outline
Clase 9
El ActiveRecord
-
play_circle_outline
Clase 10
Acercamiento a las consultas
-
-
Módulo 4 | 6 clases
REST
expand_more -
Módulo 5 | 9 clases
Construye tu propio CRUD
expand_more-
play_circle_outline
Clase 1
Crear la tabla y el modelo
-
play_circle_outline
Clase 2
Pruebas unitarias y validaciones
-
play_circle_outline
Clase 3
Crear el controlador
-
play_circle_outline
Clase 4
Rutas REST
-
play_circle_outline
Clase 5
Crear registros
-
play_circle_outline
Clase 6
Consultar y mostrar registros
-
play_circle_outline
Clase 7
Editar registros
-
play_circle_outline
Clase 8
Eliminar registros
-
play_circle_outline
Clase 9
Recapitulación del bloque
-
-
Módulo 6 | 10 clases
Controladores y rutas
expand_more-
play_circle_outline
Clase 1
Detalles de un controlador
-
play_circle_outline
Clase 2
Respuestas de un controlador
-
play_circle_outline
Clase 3
Parámetros
-
play_circle_outline
Clase 4
Strong Params: Filtrado de parámetros
-
play_circle_outline
Clase 5
Filtros en el controlador
-
play_circle_outline
Clase 6
Cookies y sesiones
-
play_circle_outline
Clase 7
Mensajes flash
-
play_circle_outline
Clase 8
Concerns
-
play_circle_outline
Clase 9
Métodos asociados a rutas
-
play_circle_outline
Clase 10
Configurar las rutas recurso
-
-
Módulo 7 | 18 clases
Modelos
expand_more-
play_circle_outline
Clase 1
Introducción al bloque
-
play_circle_outline
Clase 2
Filtrado con where
-
play_circle_outline
Clase 3
Operador lógico OR para consultas
-
play_circle_outline
Clase 4
Negación de consultas con NOT
-
play_circle_outline
Clase 5
Limpieza de parámetros (sanitizar)
-
play_circle_outline
Clase 6
Otras operaciones comúnes
-
play_circle_outline
Clase 7
Ejercicio: Implementar paginación
-
play_circle_outline
Clase 8
Scopes y métodos de clase
-
play_circle_outline
Clase 9
Configurando validaciones
-
play_circle_outline
Clase 10
Callbacks
-
play_circle_outline
Clase 11
Callbacks con su descripción en español
-
play_circle_outline
Clase 12
Relaciones entre tablas
-
play_circle_outline
Clase 13
Relaciones en el esquema
-
play_circle_outline
Clase 14
Definir asociaciones
-
play_circle_outline
Clase 15
Foreign Key Constraints
-
play_circle_outline
Clase 16
Relaciones muchos a muchos
-
play_circle_outline
Clase 17
Definir asociaciones muchos a muchos
-
play_circle_outline
Clase 18
Dónde aprender más
-
-
Módulo 8 | 13 clases
Vistas y Formularios
expand_more-
play_circle_outline
Clase 1
Panorama general de las vistas
-
play_circle_outline
Clase 2
Layouts
-
play_circle_outline
Clase 3
yields con nombre
-
play_circle_outline
Clase 4
Trabajando con formularios
-
play_circle_outline
Clase 5
Cómo funcionan los métodos de FormBuilder
-
play_circle_outline
Clase 6
Select
-
play_circle_outline
Clase 7
Checkboxes
-
play_circle_outline
Clase 8
Checkboxes y relaciones
-
play_circle_outline
Clase 9
Radio buttons
-
play_circle_outline
Clase 10
Parciales
-
play_circle_outline
Clase 11
Render de colecciones
-
play_circle_outline
Clase 12
Bloques y layouts para parciales
-
play_circle_outline
Clase 13
Helper methods
-
-
check_circle_outlineMódulo 9
Examen del curso
expand_more-
done_all
Examen
Examen final del curso
-