Avatar ·

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

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