Atributos: @test y @derive
Los atributos son anotaciones que se escriben con @ sobre funciones, clases o campos. Forja incluye soporte para tests integrados y derivación automática de comportamientos.
@test
Marca una función como test. Podés agrupar tests en un archivo y ejecutarlos con forja test archivo.fa.
🧪 Tests
@test
funcion test_suma() {
asegurar(suma(2, 3) == 5)
asegurar(suma(-1, 1) == 0)
}
@test
funcion test_resta() {
asegurar(resta(10, 3) == 7)
} @derive
Deriva implementaciones automáticas para clases (similar a Rust). Actualmente soporta:
| Derive | Descripción |
|---|---|
Mostrar | Implementa formato legible en strings |
Igual | Implementa == y != |
🏷️ Derive
@derive(Mostrar, Igual)
clase Punto {
x
y
constructor(x, y) {
este.x = x
este.y = y
}
}
variable a = nuevo Punto(1, 2)
variable b = nuevo Punto(1, 2)
asegurar(a == b) // Igual deriva == Uso combinado
🧪 + 🏷️
@derive(Mostrar, Igual)
clase Usuario {
nombre
edad
constructor(nombre, edad) {
este.nombre = nombre
este.edad = edad
}
}
@test
funcion test_usuario() {
variable u1 = nuevo Usuario("Ana", 30)
variable u2 = nuevo Usuario("Ana", 30)
asegurar(u1 == u2)
}