اختبارات التكامل
مجلد tests
اختبارات التكامل درس مجاني في Learn Rust Coding على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Learn Rust Coding، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Learn Rust Coding 4 دروس في المجموع.
ما اختبارات التكامل؟
تتحقق اختبارات التكامل من واجهة برمجة التطبيقات العامة لصندوقكم بالطريقة التي سيستخدمها بها مستخدم خارجي. وتوجد هذه الاختبارات خارج src، ولا يمكنها استدعاء إلا العناصر العامة.
دليل tests
يتعامل Cargo مع كل ملف في دليل المستوى الأعلى tests/ باعتباره صندوق اختبار مستقلًا. ولا حاجة إلى وحدة #[cfg(test)] هناك.
tests/api.rstests/parsing.rs
مكتبة للاختبار
تستهدف اختبارات التكامل صندوق مكتبة. لنفترض أن src/lib.rs يوفّر دالة عامة.
// src/lib.rs
pub fn add(a: i32, b: i32) -> i32 {
a + b
}كتابة اختبار تكامل
في tests/add.rs، استوردوا الصندوق باسمه واختبروا واجهة برمجة التطبيقات العامة الخاصة به. ولا تزال كل دالة تستخدم #[test].
// tests/add.rs
use my_lib::add;
#[test]
fn adds_two_numbers() {
assert_eq!(add(2, 2), 4);
}العناصر العامة فقط
بما أن اختبارات التكامل صندوق مستقل، فلا يمكنها استخدام سوى العناصر العامة (pub). أما الدوال الخاصة فغير مرئية — تمامًا كما تكون بالنسبة إلى أي مستخدم فعلي.
تشغيل اختبارات التكامل
يشغّل cargo test اختبارات الوحدات واختبارات التكامل معًا. ويظهر كل ملف ضمن tests/ باعتباره ملفًا ثنائيًا للاختبار في المخرجات.
cargo testتشغيل ملف واحد
استخدموا --test مع اسم الملف، من دون الامتداد، لتشغيل ملف واحد من اختبارات التكامل.
cargo test --test addمساعدات الاختبار المشتركة
لمشاركة شيفرة الإعداد من دون تحويلها إلى ملف اختبار، ضعوا المساعدات في tests/common/mod.rs. ولا تُعامل الملفات الموجودة في الأدلة الفرعية باعتبارها صناديق اختبار.
// tests/common/mod.rs
pub fn setup() {
// shared setup logic
}استخدام المساعد
صرّحوا عن الوحدة واستدعوا دوالها من اختبار التكامل.
// tests/api.rs
mod common;
#[test]
fn uses_setup() {
common::setup();
assert!(true);
}اختبارات الوحدات مقابل اختبارات التكامل
أسلوبان متكاملان للاختبار:
- اختبارات الوحدات توجد في
src، ويمكنها اختبار العناصر الخاصة، كما أنها سريعة ومركزة - اختبارات التكامل توجد في
tests/، وتختبر واجهة برمجة التطبيقات العامة من البداية إلى النهاية
اختبار صندوق ثنائي
تستهدف اختبارات التكامل المكتبات لا الملفات الثنائية. ومن الأنماط الشائعة الاحتفاظ بالمنطق في src/lib.rs، وإنشاء src/main.rs رفيع يستدعيه، بحيث تتمكن اختبارات الوحدات والتكامل معًا من الوصول إلى الشيفرة.
// src/main.rs
fn main() {
println!("{}", my_lib::add(2, 3));
}تحقق سريع
أين توجد اختبارات التكامل، وما العناصر التي يمكنها الوصول إليها؟
مراجعة
لقد تعلمتم اختبار التكامل:
- الملفات الموجودة في
tests/هي صناديق اختبار مستقلة - تستورد هذه الاختبارات صندوقكم باسمه، ولا تختبر إلا العناصر العامة
- يشغّل
cargo test --test nameملفًا واحدًا - توضع المساعدات المشتركة في
tests/common/mod.rs
الأسئلة الشائعة
هل درس «اختبارات التكامل» مجاني؟
نعم — نص درس «اختبارات التكامل» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Learn Rust Coding، انتقل إلى CoddyKit PRO. تتضمن دورة Learn Rust Coding 4 دروس في المجموع.
ماذا ستتعلم في «اختبارات التكامل»؟
مجلد tests تتمرن على Learn Rust Coding مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Learn Rust Coding؟
لا تُشترط خبرة سابقة. Learn Rust Coding على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «اختبارات التكامل»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Learn Rust Coding هذا؟
نعم. كل درس في Learn Rust Coding يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- اختبارات الوحدة
- اختبارات التكامل
- تعليقات التوثيق
- اختبارات التوثيق