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