Avatar ·

كيفية إنشاء اختبارات معلمية في Rust للتحقق من العديد من المدخلات؟

مرحبًا أيها الزملاء! لقد بدأت مؤخرًا في تعلم Rust وأكتب اختبارات لمشروعي. لدي دالة تحسب مضروب العدد: ```rust fn factorial(n: u64) -> u64 { match n { 0 | 1 => 1, _ => n * factorial(n - 1), } } ``` أحتاج للتحقق من عملها لقيم إدخال مختلفة: 0، 1، 5، 10، إلخ. حاليًا أكتب اختبارًا منفصلًا لكل حالة: ```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); } ``` هذا غير مريح جدًا عندما تحتاج للتحقق من عشرات أو مئات الخيارات. أنا معتاد في لغات أخرى (مثل Python مع `pytest.mark.parametrize`) على كتابة اختبار معلمي واحد يأخذ قائمة من المدخلات والنتائج المتوقعة. في توثيق Rust وجدت فقط أمثلة بسيطة مع `#[test]`. هل توجد أدوات مدمجة في Rust للاختبارات المعلمية؟ أم أحتاج إلى