Avatar ·

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?