- 1

Curso Intermedio de Ruby on Rails: Migración y Optimización Avanzada
01:37 - 2

Migración de Rails a MongoDB con Mongoid y Pruebas Automatizadas
03:38 - 3

Gestión de Múltiples Versiones de MongoDB en Linux
13:21 - 4

Migración de Rails a MongoDB con Mongoid: Configuración Inicial
10:17 - 5

Migración de Modelos de Active Record a Mongoid
08:35 - 6

Migración completa de aplicaciones con MongoDB y Rails
15:55
Integración de Librerías para Pruebas Automatizadas en Rails
Clase 9 de 34 • Curso Intermedio de Ruby on Rails
Contenido del curso
- 7

Pruebas Automatizadas: Introducción a TDD y BDD en Desarrollo de Software
10:11 - 8
Creación de Fábricas Automatizadas con FactoryBot y Faker en Rails
04:18 - 9

Integración de Librerías para Pruebas Automatizadas en Rails
13:24 - 10

Pruebas de Modelos en Rails con Mongoid y RSpec
13:41 - 11

Pruebas de Validación y Guardado en Modelos Rails
11:39 - 12

Validación y Pruebas de Modelos en Ruby on Rails
07:48 - 13

Pruebas de Integración en Rails: Configuración y Ejecución Básica
10:54 - 14

Creación y prueba de tareas con métodos POST en Rails
12:39 - 15

Automatización de Pruebas con Headless Browser y Capybara en Rails
05:03 - 16

Pruebas de Sistema con KPIBara y WebDriver en Rails
13:35 - 17

Automatización de Pruebas de Sistema con Selenium y JavaScript
15:24
- 22

Envío de Emails Automático al Crear Tareas
04:43 - 23

Introducción a Service Objects en Ruby on Rails
09:00 - 24

Pruebas de TDD para Service Object de Notificaciones por Correo
12:18 - 25

Creación de Service Objects para Envío de Correos en Ruby on Rails
13:04 - 26

Procesos en Background con Sucker Punch en Rails
12:51 - 27

Pruebas con Doubles en Rails usando Sucker Punch
12:10
- 28

Máquinas de Estado Finito: Conceptos y Aplicaciones Prácticas
07:32 - 29

Creación de Máquinas de Estados con AASM en Ruby on Rails
13:37 - 30

Creación de Service Object para Gestión de Estados de Tareas en Rails
08:37 - 31

Acciones de Controlador y Pruebas en Ruby on Rails
10:43 - 32

Integración de AJAX en Gestión de Estados de Tareas en Ruby on Rails
13:07
¿Cómo configurar el entorno para pruebas automatizadas en Rails?
En el mundo del desarrollo de software, contar con un entorno de pruebas automatizadas es crucial para garantizar el correcto funcionamiento de nuestras aplicaciones antes de su lanzamiento. A continuación, te mostraré cómo preparar tu entorno de Rails para implementar pruebas automatizadas utilizando algunas gemas esenciales y configuraciones adecuadas.
¿Qué gemas son esenciales para las pruebas?
Iniciaremos este proceso integrando varias gemas que serán fundamentales para nuestras pruebas. Primero, debemos modificar nuestro archivo Gemfile y crear un nuevo grupo de gemas exclusivo para pruebas automatizadas. Asegúrate de no utilizar el grupo compartido entre pruebas y desarrollo, ya que estas gemas deben ser específicas para este propósito.
-
Database Cleaner: Esta gema es esencial para mantener la base de datos limpia y en un estado consistente entre pruebas. Aunque MongoDB ha comenzado a implementar funcionalidades transaccionales, aún es recomendable utilizar este recurso para asegurarte de que cada prueba comience con datos limpios y consistentes.
-
Faker: Esta gema es útil para generar datos ficticios como nombres, correos electrónicos y más, sin esfuerzo adicional. Esto es especialmente útil cuando necesitas poblaciones de datos de prueba.
-
Capybara: Aunque no se utilizará inmediatamente, Capybara será útil cuando trabajemos con pruebas de interacción gráfica o navegador. Cuando alcancemos este punto, te explicaré su implementación más a fondo.
¿Cómo integrar RSpec y FactoryBot?
La integración de RSpec y FactoryBot es fundamental en este proceso. A continuación, te indico cómo hacerlo:
-
RSpec Rails: Aunque RSpec no está totalmente ligado a Rails, es necesario utilizar la gema
rspec-railspara integrarlo adecuadamente en nuestro proyecto. -
FactoryBot: Esta herramienta nos permite crear instancias de modelos de manera rápida y automática. Debes incluir la gema
factory_bot_railspara asociarla adecuadamente en tu proyecto con Rails.
¿Cómo configurar los archivos de ayuda de RSpec?
Tras instalar estas gemas, el siguiente paso es realizar configuraciones adicionales en los archivos de ayuda generados por RSpec:
-
Spec Helper: Aquí, puedes definir filtros y formateos que determinen el comportamiento de ejecución y reporte de tus pruebas. Asegúrate de habilitar el
filter_run_when_matching :focuspara ejecutar pruebas específicas y define eldefault_formatter = 'doc'para obtener resultados detallados. -
Rails Helper: En este archivo, importa cada una de las librerías instaladas y establece configuraciones específicas, como desactivar las transacciones predeterminadas para MongoDB y configurar los helpers para FactoryBot y dispositivos de autenticación.
¿Cómo optimizar el uso de Database Cleaner?
La optimización del Database Cleaner se logra mediante la definición de callbacks específicos para la limpieza de la base de datos antes y después de cada conjunto de pruebas o prueba individual. De esta manera, garantizas que ninguna prueba interfiera con otra, manteniendo la integridad del entorno.
-
Antes del grupo de pruebas (suite): Define el ORM que usarás (Mongoid) y limpia la base de datos para empezar con un entorno uniforme.
-
Antes y después de cada prueba: Configura la inicialización y limpieza del estado de la base de datos respetando el contexto único para cada prueba.
Configuraciones adicionales importantes
Finalmente, asegúrate de configurar correctamente la inferencia del tipo de prueba y la gestión de errores utilizando las siguientes líneas en tu archivo rails_helper.rb:
-
Infer Spec Type from File Location: Facilita el uso de métodos específicos según el tipo de prueba basándose en la ubicación del archivo.
-
Filter Rails from Backtraces: Oculta las líneas de trazas no relevantes al desarrollador y relacionadas con el núcleo de Rails.
Estas configuraciones iniciales son fundamentales para preparar un entorno de pruebas robusto que asegure la fiabilidad y consistencia de tus aplicaciones Rails. ¡Ánimate a continuar con el aprendizaje y perfeccionar tus habilidades de pruebas automatizadas!