- S1: Eliminar 'triggers' duplicado en run (líneas 109/131) - S2: Eliminar cli/commit.rb (truncado, sin uso) - S3: Eliminar cli/inicio.rb y cli/cierre.rb (legacy, jornada.rb los reemplaza) - S4: Mover 4 planes obsoletos de docs/plan/adn/ a docs/_hist/plan/adn/ - S5: Mover 14 backups de planes y 3 docs técnicos a docs/_hist/ - S6: Eliminar manifiesto vacío P2604_proyecto_p2604.md - S7: Corregir referencia a plan obsoleto en run - S8: Dejar de cargar core/validador.rb obsoleto en run - S9: Limpiar progreso duplicado en P2604_mejoras_ADN.md - Agregar Fase 10 al plan P2604 con 10 tareas - Un solo punto de verdad: adn/README.md - Un solo plan: docs/proy/p2604_mejoras_ADN/P2604_mejoras_ADN.md - Registro en bitácora: evento 1073
84 lines
1.6 KiB
Markdown
84 lines
1.6 KiB
Markdown
# Guía de Testing ADN
|
|
|
|
> Cómo escribir tests para el sistema ADN
|
|
|
|
## Estructura de Tests
|
|
|
|
```
|
|
adn/tools/
|
|
└── spec/
|
|
├── spec_helper.rb
|
|
├── db/
|
|
│ └── evento_spec.rb
|
|
└── core/
|
|
├── colores_spec.rb
|
|
└── validador_spec.rb
|
|
```
|
|
|
|
## Ejecutar Tests
|
|
|
|
```bash
|
|
cd adn/tools
|
|
|
|
# Todos los tests
|
|
bundle exec rspec
|
|
|
|
# Un archivo específico
|
|
bundle exec rspec spec/db/evento_spec.rb
|
|
|
|
# Con output detallado
|
|
bundle exec rspec --format documentation
|
|
```
|
|
|
|
## Escribir un Test
|
|
|
|
```ruby
|
|
# spec/core/mi_modulo_spec.rb
|
|
|
|
require_relative '../spec_helper'
|
|
$LOAD_PATH.unshift File.expand_path('../../core', __dir__)
|
|
require 'mi_modulo'
|
|
|
|
describe 'ADN::MiModulo' do
|
|
describe '.metodo' do
|
|
it 'hace algo esperado' do
|
|
expect(resultado).to eq(valor_esperado)
|
|
end
|
|
|
|
it 'rechaza valor inválido' do
|
|
expect { metodo(inválido) }.to raise_error(ADN::ValidationError)
|
|
end
|
|
end
|
|
end
|
|
```
|
|
|
|
## Buenos Patrones
|
|
|
|
1. **Un describe por clase/módulo**
|
|
2. **Un it por comportamiento**
|
|
3. **Tests independientes** (sin orden ni dependencias)
|
|
4. **Nombres descriptivos**: `it 'valida formato HH:MM'`
|
|
|
|
## Helpers Disponibles
|
|
|
|
- `expect(...).to eq(valor)`
|
|
- `expect(...).to match(/regex/)`
|
|
- `expect(...).to be true/false`
|
|
- `expect { }.to raise_error(Error)`
|
|
|
|
## Cobertura
|
|
|
|
| Módulo | Tests |
|
|
| :--- | :--- |
|
|
| db/evento | 3 |
|
|
| core/colores | 6 |
|
|
| core/validador | 6 |
|
|
| **Total** | **15** |
|
|
|
|
## Próximos Tests
|
|
|
|
- [ ] spec/core/error_handler_spec.rb
|
|
- [ ] spec/core/help_formatter_spec.rb
|
|
- [ ] spec/cli/db_spec.rb
|
|
- [ ] spec/cli/jornada_spec.rb
|