Prefacio a esta edición
Agradecimientos
1. Introducción
- Pruebas con confianza
- ¿Por qué RSpec?
- Quién debería leer este libro
- Mi filosofía sobre las pruebas
- Cómo está organizado el libro
- Descarga del código de ejemplo
- Convenciones de código
- Discusión y erratas
- Una nota sobre las versiones de gemas
- Una nota sobre el estilo
- Sobre la aplicación de ejemplo
2. Configuración de RSpec
- Dependencias
- Base de datos de prueba
- Configuración de RSpec
- El binstub de
rspec - ¡Pruébalo!
- Resumen
- Ejercicios
3. Specs de modelos
- Anatomía de un spec de modelo
- Creación de un spec de modelo
- La sintaxis de RSpec
- Probando validaciones
- Probando métodos de instancia
- Probando métodos de clase y scopes
- Probando todos los casos
- Más sobre los matchers
- Resumen
- Ejercicios
4. Specs suficientemente DRY
- Describiendo contextos en RSpec
- Configuración y limpieza de pruebas más DRY
- ¿Cuánto DRY es demasiado DRY?
- Resumen
- Ejercicios
5. Creación de datos de prueba significativos
- ¿Factories o fixtures?
- Instalación de factory_bot
- Añadiendo factories a la aplicación
- Generación de datos únicos con secuencias
- Asociaciones en factories
- Uso seguro de las factories
- Resumen
- Ejercicios
6. Probando controladores
- Request specs básicos
- Probando la autenticación de usuarios
- Probando la autorización de usuarios
- Probando la entrada del usuario
- Resumen
- Ejercicios
7. Request specs al siguiente nivel
- Probar entradas de usuario inválidas
- Simplificar datos de prueba con los traits de factory_bot
- Pruebas de solicitudes y respuestas no HTML
- Resumen
- Ejercicios
8. Pruebas de la interfaz de usuario con specs de sistema
- ¿Por qué specs de sistema?
- Dependencias de las specs de sistema
- Una spec de sistema básica
- Simulando interacciones del navegador con Capybara
- Depurando specs de sistema
- Probando interacciones con JavaScript
- Estrategias para las pruebas de sistema
- Resumen
- Ejercicios
9. Más técnicas de pruebas DRY
- Módulos de soporte
- Carga diferida con
let - Contextos compartidos
- Matchers personalizados
- Agregación de fallos
- Resumen
- Ejercicio
10. Pruebas en aislamiento
- Mocks, stubs, doubles, fakes y spies, definidos
- Probando casos límite con mocks
- Simulando sistemas externos
- Grabación de transacciones HTTP con VCR
- Mocking de métodos en factories
- Cuándo el mocking va demasiado lejos
- Resumen
- Ejercicios
11. Probando el resto
- Probando la carga de archivos
- Pruebas de entrega de correo electrónico
- Pruebas de trabajos en segundo plano
- Midiendo la cobertura de pruebas
- Resumen
- Ejercicios
12. Hacia el desarrollo guiado por pruebas
- Requisitos
- Pruebas descendentes
- Buscando pistas
- Descendiendo un nivel
- Resumen
- Ejercicios
13. Consejos finales
- Practica probando las cosas pequeñas
- Sé consciente de lo que estás haciendo
- Los spikes cortos están bien
- Escribir un poco y probar un poco también está bien
- Intenta escribir los specs de integración primero
- Reserva tiempo para las pruebas
- Mantén la simplicidad
- ¡No vuelvas a los viejos hábitos!
- Usa tus pruebas para mejorar tu código
- Convence a los demás de los beneficios de las pruebas automatizadas
- Sigue practicando
- Hasta pronto
