- 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
Pruebas de Sistema con KPIBara y WebDriver en Rails
Clase 16 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 se implementan las pruebas de sistema con KPIBara y WebDriver?
Implantar pruebas de sistema efectivas es esencial para cualquier desarrollador que busque garantizar que sus aplicaciones funcionen sin problemas en todos los escenarios de usuario. En este contexto, aprenderemos a utilizar KPIBara junto con un WebDriver en Rails para crear pruebas de sistema automatizadas. Este enfoque no solo afina la funcionalidad de la aplicación, sino que también incrementa la confianza en el resultado y la calidad del producto final.
¿Cómo generar la estructura de prueba con Rails?
Antes de comenzar las pruebas, es fundamental crear una estructura adecuada. Usaremos un generador de Rails que nos faculta para estructurar nuestras pruebas de sistema:
rails generate rspec:system
Este comando crea un archivo de prueba dentro de la carpeta system. Aunque inicialmente no contiene ejemplos de prueba específicos, es posible personalizarlo eliminando el marcador pending y manteniendo el bloque before.
¿Cómo crear una prueba básica de título de página con KPIBara?
La prueba inicial que podemos implementar es verificar que el título de la página de lista de tareas sea correcto. Para ello, se puede usar el método visit de Capybara para navegar a la ruta /tasks y luego verificar el contenido de la página.
describe 'GET /tasks' do
it 'has a correct title' do
visit '/tasks'
expect(page).to have_content('Lista de Tareas')
end
end
¿Por qué necesitamos un WebDriver y cómo integrarlo?
Las pruebas de sistema requieren interactuar realmente con el navegador, necesitando así un WebDriver. Integrar uno implica incluir la gema Selenium para gestionar estas interacciones.
Primero, añade selenium-webdriver en el Gemfile dentro del grupo de prueba:
group :test do
gem 'selenium-webdriver'
end
Ejecuta la instalación de las gemas y luego vuelve a correr las pruebas para verificar que el WebDriver esté correctamente configurado.
¿Cómo solucionar errores de autenticación en pruebas?
Errores relacionados con la autenticación son comunes en pruebas de sistema. Configura adecuadamente los helpers de integración en rails_helper.rb, asegurándote de incluir los helpers necesarios para las pruebas del sign in.
RSpec.configure do |config|
config.include Devise::Test::IntegrationHelpers, type: :system
end
Con estas configuraciones en orden, utiliza el helper sign_in para manejar procesos de inicio de sesión antes de interactuar con la aplicación:
let(:user) { FactoryBot.create(:user) }
before do
sign_in user
end
¿Cómo interactuar con formularios utilizando el DSL de KPIBara?
El siguiente paso radica en manipular formularios dentro de la página de creación de tareas. Utilizamos el DSL de Capybara para completar campos y seleccionar opciones:
Rellenar campos
Para completar los campos del formulario, usa el método fill_in:
fill_in 'task[name]', with: 'Test Task 2'
fill_in 'task[description]', with: 'Descripción del Test'
fill_in 'task[due_date]', with: '2023-12-31'
Seleccionar opciones
Para seleccionar elementos tipo select, utiliza el método select de KPIBara:
select 'Categoria 1', from: 'task[category_id]'
Introduce categorías y otras entidades necesarias utilizando let! con un banco (!) para asegurar que se creen al inicio de las pruebas y estén listas para ser utilizadas previamente.
¿Cuál es el desafío planteado y cómo resolverlo?
El instructor menciona un error que debes encontrar en la implementación anterior. Ejecuta las pruebas, identifícalo e intenta solucionarlo. Este tipo de interacción fortalece la comprensión de cómo trabajan en conjunto las herramientas y fomenta el aprendizaje autónomo, ofreciéndote un valioso marco en tu camino como desarrollador.