Cómo crear tests parametrizados en Rust para verificar múltiples datos de entrada
¡Hola, colegas! Recientemente comencé a estudiar Rust y estoy escribiendo tests para mi proyecto. Tengo una función que calcula el factorial de un número:
```rust
fn factorial(n: u64) -> u64 {
match n {
0 | 1 => 1,
_ => n * factorial(n - 1),
}
}
```
Necesito verificar su funcionamiento para diferentes valores de entrada: 0, 1, 5, 10, etc. Actualmente escribo un test separado para cada caso:
```rust
#[test]
fn test_factorial_0() {
assert_eq!(factorial(0), 1);
}
#[test]
fn test_factorial_1() {
assert_eq!(factorial(1), 1);
}
#[test]
fn test_factorial_5() {
assert_eq!(factorial(5), 120);
}
```
Esto es muy incómodo cuando necesito verificar decenas o cientos de variantes. En otros lenguajes (por ejemplo, en Python con `pytest.mark.parametrize`) estoy acostumbrado a escribir un test parametrizado que acepta una lista de datos de entrada y resultados esperados. En la documentación de Rust solo encontré ejemplos simples con `#[test]`.
¿Podrían indicarme si Rust tiene herramientas integradas para parametrizar tests?