عن المشروع
React Testing Library (RTL) هي أداة اختبار خفيفة لـ React تعزز ممارسات الاختبار الجيدة من خلال تشجيع اختبارات تشبه كيفية استخدام البرنامج فعليًا. وهي مبنية على `react-dom/test-utils` وتوفر أدوات اختبار DOM بسيطة وكاملة. المبدأ التوجيهي الأساسي هو: "كلما زادت اختباراتك مشابهة للطريقة التي يُستخدم بها برنامجك، زادت الثقة التي يمكن أن تمنحك إياها."
تشمل الميزات الرئيسية:
- **استعلامات تركز على المستخدم**: استخدم دوال `getBy` و`queryBy` و`findBy` للتفاعل مع عناصر DOM كما يفعل المستخدم، مع دعم محددات regex.
- **تشجع اختبارات قابلة للصيانة**: تركز على الوظيفة بدلاً من تفاصيل التنفيذ، لذا لا تؤدي إعادة الهيكلة إلى كسر الاختبارات.
- **تعمل مع React Hooks والفئات**: الاختبارات هي نفسها بغض النظر عن تنفيذ المكون.
- **خفيفة**: تكشف فقط عن الطرق التي تشجع ممارسات الاختبار الجيدة.
يتطلب التثبيت `@testing-library/react`، وبدءًا من الإصدار 16، `@testing-library/dom`. تتطلب الإصدارات 13+ React v18. يُنصح أيضًا بتثبيت `@testing-library/jest-dom` للمطابقات المخصصة لـ Jest.
يتضمن الاستخدام الأساسي عرض المكونات باستخدام `render`، ومحاكاة الأحداث باستخدام `fireEvent`، والاستعلام عن العناصر عبر `screen`. توضح الأمثلة المعقدة محاكاة استدعاءات API باستخدام Mock Service Worker (MSW) لتدفقات تسجيل الدخول ومعالجة الأخطاء.
RTL هي جزء من عائلة Testing Library، والتي تتضمن React Hooks Testing Library للخطافات القابلة لإعادة الاستخدام. وهي معتمدة على نطاق واسع وتتم صيانتها بواسطة مجتمع كبير من المساهمين.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.