Avatar ·

كيفية اختبار الدوال غير المتزامنة بشكل صحيح مع Tokio في Rust؟

مرحباً! بدأت في تعلم Rust وTokio للبرمجة غير المتزامنة. كتبت وحدة بسيطة للعمل مع الشبكة، لكنني لا أفهم كيفية كتابة اختبارات للدوال غير المتزامنة بشكل صحيح.\n\nإليك مثال على الكود الخاص بي:\n\n```rust\nuse tokio::time::{sleep, Duration};\n\npub async fn fetch_data(url: &str) -> Result {\n // محاكاة طلب شبكة\n sleep(Duration::from_millis(100)).await;\n if url.is_empty() {\n return Err("URL فارغ".to_string());\n }\n Ok(format!("بيانات من {}", url))\n}\n\n#[cfg(test)]\nmod tests {\n use super::*;\n\n #[test]\n fn test_fetch_data() {\n let result = fetch_data("https://example.com");\n // هنا خطأ في الترجمة\n }\n}\n```\n\nعندما أحاول تشغيل الاختبار، يظهر المترجم خطأ: `the trait boun