Comment créer des tests paramétrés en Rust pour vérifier plusieurs entrées ?
Bonjour, collègues ! J'ai récemment commencé à apprendre Rust et j'écris des tests pour mon projet. J'ai une fonction qui calcule la factorielle d'un nombre :
```rust
fn factorial(n: u64) -> u64 {
match n {
0 | 1 => 1,
_ => n * factorial(n - 1),
}
}
```
Je dois vérifier son fonctionnement pour différentes valeurs d'entrée : 0, 1, 5, 10, etc. Actuellement, j'écris un test séparé pour chaque cas :
```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);
}
```
C'est très peu pratique quand il faut vérifier des dizaines ou des centaines de variantes. Dans d'autres langages (par exemple, en Python avec `pytest.mark.parametrize`), j'ai l'habitude d'écrire un seul test paramétré qui prend une liste d'entrées et de résultats attendus. Dans la documentation de Rust, je n'ai trouvé que des exemples simples avec `#[test]`.
Dites-moi, existe-t-il en Rust des outils intégrés pour les tests paramétrés ?