Avatar ·

Wie man parametrisierte Tests in Rust erstellt, um mehrere Eingabedaten zu überprüfen?

Hallo Kollegen! Ich habe kürzlich angefangen, Rust zu lernen, und schreibe Tests für mein Projekt. Ich habe eine Funktion, die die Fakultät einer Zahl berechnet: ```rust fn factorial(n: u64) -> u64 { match n { 0 | 1 => 1, _ => n * factorial(n - 1), } } ``` Ich muss ihre Funktionsweise für verschiedene Eingabewerte überprüfen: 0, 1, 5, 10 usw. Derzeit schreibe ich für jeden Fall einen separaten Test: ```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); } ``` Das ist sehr umständlich, wenn man Dutzende oder Hunderte von Varianten überprüfen muss. In anderen Sprachen (z.B. in Python mit `pytest.mark.parametrize`) bin ich es gewohnt, einen einzigen parametrisierten Test zu schreiben, der eine Liste von Eingabedaten und erwarteten Ergebnissen akzeptiert. In der Rust-Dokumentation habe ich nur einfache Beispiele mit `#[test]` gefunden. Könnt ihr mir sagen, ob es in Rust eingebaute Mittel für parametrisierte Tests gibt?