Pruebas de Sistema con KPIBara y WebDriver en Rails
Clase 16 de 34 • Curso Intermedio de Ruby on Rails
Resumen
¿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.