كيفية اختبار الدوال غير المتزامنة بشكل صحيح باستخدام 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`