مرحبًا يا من هناك! بصفتي موردًا لسنانير ، لقد كنت في اللعبة لفترة طويلة ، وأنا أعلم مدى أهمية اختبار السنانير بشكل صحيح. أحد الجوانب الرئيسية للاختبار خطافات هو السخرية منها بفعالية. لذلك ، دعونا نغوص في ما أعتقد أنه أفضل طريقة لسخرية السنانير في الاختبارات.
لماذا السنانير وهمية في الاختبارات؟
أولاً ، لماذا نحتاج حتى إلى السخرية من السنانير؟ حسنًا ، غالبًا ما تتفاعل السنانير مع الموارد الخارجية مثل واجهات برمجة التطبيقات أو قواعد البيانات أو المتصفح المدمج - في الوظائف. عندما نكتب اختبارات الوحدة ، نريد عزل المكون أو الوظيفة التي نختبرها. تتيح لنا السنانير السخرية التحكم في مدخلات وإخراج هذه الخطافات ، مما يجعل اختباراتنا أكثر موثوقية وأسرع.
على سبيل المثال ، إذا كنت تستخدم خطافًا مخصصًا يجلب البيانات من واجهة برمجة التطبيقات ، فأنت لا ترغب في الاعتماد على واجهة برمجة التطبيقات الفعلية المتاحة وإرجاع البيانات المتسقة أثناء الاختبار. بدلاً من ذلك ، يمكنك السخرية من الخطاف لإرجاع مجموعة من البيانات المحددة مسبقًا.
طرق مختلفة لسخر السنانير
1. يدوي السخرية
واحدة من أكثر الطرق المباشرة لسخر السنانير هي القيام بذلك يدويًا. لنفترض أن لديك خطافًا مخصصًا يسمىusefetchdataأن يجلب بعض البيانات من واجهة برمجة التطبيقات.
// usefetchdata.js import {useEffect ، Usestate} من 'React' ؛ const usefetchData = () => {const [data ، setData] = Usestate (null) ؛ const [loading ، setloading] = Usestate (true) ؛ useffect (() => {const fetchdata = async () => {try {const response = await fetch ('https://example.com/api/data') ؛ const response = await review.json () ؛ setData (result) ؛ setloading (خطأ) ؛ fetchdata () ؛ إرجاع {data ، loading} ؛ } ؛ تصدير الافتراضي USEFETCHDATA ؛
للسخرية يدويًا هذا الخطاف في الاختبار ، يمكنك إنشاء تطبيق وهمية.
// __mocks __/usefetchdata.js const usefetchData = () => {return {data: {message: 'docked data'} ، loading: false} ؛ } ؛ تصدير الافتراضي USEFETCHDATA ؛
في ملف الاختبار الخاص بك ، يمكنك بعد ذلك استخدام هذا وهمية.
رد الفعل من "رد الفعل" ؛ استيراد {render ، screen} من '@testing-library/react' ؛ استيراد مكون thatatusesfetchdata من './ComponentThatusesFetchData' ؛ Jest.Mock ('./ usefetchdata') ؛ وصف ('componentThatusesFetchData' ، () => {it ('يجب أن يعرض البيانات الساخرة' ، () => {render (<componentTaseSeSfetchData />) ؛ const dataElement = screen.getBytext ('docked data') ؛ توقع (dataElement).
يمنحك السخرية اليدوية السيطرة الكاملة على التنفيذ الوهمي. يمكنك تغيير قيم الإرجاع بناءً على سيناريوهات الاختبار المختلفة. ومع ذلك ، يمكن أن يكون الوقت وقتًا - يستهلك ، خاصة إذا كان لديك الكثير من السنانير للتسخين.
2. باستخدام السخرية التلقائية لـ Jest's
يحتوي Jest على ميزة حيث يمكنها إنشاء Mocks تلقائيًا. إذا كان لديك خطاف في ملف ، يمكن لـ Jest إنشاء نسخة وهمية من هذا الخطاف مع بعض السلوك الافتراضي.
على سبيل المثال ، إذا كان لديك خطاف بسيط مثلusecounter:
// usecounter.js import {Usestate} من 'React' ؛ const usecounter = () => {const [count ، setCount] = Usestate (0) ؛ const classement = () => setCount (count + 1) ؛ return {count ، styrement} ؛ } ؛ تصدير الافتراضي usecounter ؛
في الاختبار الخاص بك ، يمكنك استخدام السخرية التلقائية لـ Jest.
رد الفعل من "رد الفعل" ؛ استيراد {render ، screen} من '@testing-library/react' ؛ استيراد مكون ThatatusesCounter من './ComponentThatusesCounter' ؛ Jest.Mock ('./ usecounter') ؛ وصف ('componentThatusesCounter' ، () => {it ('يجب استخدام العداد المسموح به "، () => {render (<componentThatusesCounter />) ؛ // يمكنك مزيد من تخصيص النفخ هنا إذا لزم الأمر // على سبيل المثال ، إذا كانت المكالمات المكونة ، يمكنك التحقق من سلوك mock}) ؛}) ؛
تتمثل ميزة استخدام السخرية التلقائية في Jest في أنه سريع وسهل الإعداد. ولكن قد لا يكون مرنًا مثل السخرية اليدوية ، خاصةً عندما تحتاج إلى سلوك وهمية محدد للغاية.
3. استخدام مكتبة اختبار رد الفعل ومكتبة اختبار السنانير
تعد مكتبة اختبار Hooks Hooks أداة رائعة لاختبار السنانير. يوفر الأدوات المساعدة لتقديم السنانير واختبار سلوكها.
دعنا نقول أن لديك خطافًا يحسب مجموع رقمين:
// usephum.js import {Usestate} من 'React' ؛ const useum = (a ، b) => {const [sum ، setSum] = Usestate (a + b) ؛ إرجاع مجموع } ؛ تصدير الاستخدامات الافتراضية ؛
يمكنك استخدام مكتبة اختبار HAINT Hooks لاختبار هذا الخطاف وكذلك السخرية من أي تبعيات إذا لزم الأمر.
استيراد {renderHook} من '@testing-library/react-hooks' ؛ استيراد usepsum من './usesum' ؛ وصف ('usepresum' ، () => {it ('يجب حساب المجموع بشكل صحيح' ، () => {const {result} = renderhook (() => useum (2 ، 3)) ؛
إذا كان للخطاف الخاص بك بعض التبعيات الخارجية ، فيمكنك استخدام نفس مبادئ اليدوي أو السخرية الدائرية للتعامل معها.
أفضل الممارسات لسخرية السنانير
- الحفاظ على السخرية بسيطة: يجب أن تكون السخرية الخاصة بك بسيطة قدر الإمكان. إنهم يحتاجون فقط إلى تقليد السلوك الذي يحتاجه الاختبار الخاص بك. أكثر من ذلك - يمكن أن يجعل تعقيد السخرية اختباراتك من الصعب فهمها والحفاظ عليها.
- اختبار سيناريوهات مختلفة: تأكد من اختبار سيناريوهات مختلفة عن طريق تغيير بيانات وهمية. على سبيل المثال ، إذا كان الخطاف يحتوي على حالات مختلفة مثل التحميل والنجاح والخطأ ، فاختبر كل هذه الحالات عن طريق إرجاع قيم وهمية مختلفة.
- مخاوف منفصلة: حافظ على نفاياتك المنفصلة عن رمز الإنتاج الخاص بك. هذا يجعل من السهل إدارتها وتحديثها مع تطور قاعدة كودك.
التطبيقات العالمية الحقيقية في أعمالنا السنانير
كمورد للسنانير ، لدينا أنواع مختلفة من السنانير ، مثلخطافات القوة الصناعيةالتي تستخدم في التطبيقات الثقيلة. عندما نقوم بتطوير برامج لإدارة مخزوننا أو تتبع أوامر أو عرض معلومات المنتج ، فإننا نستخدم السنانير في تطبيقات React الخاصة بنا.
يعد اختبار هذه السنانير أمرًا بالغ الأهمية لضمان عمل برنامجنا بشكل صحيح. على سبيل المثال ، إذا كان لدينا خطاف يجلب مستوى الأسهم من خطافات قوتنا الصناعية من قاعدة بيانات ، فيمكننا السخرية من هذا الخطاف في اختباراتنا لتجنب الاعتماد على قاعدة البيانات الفعلية.
لدينا أيضا منتجات مثلأحزمة السقاطة السميكة للمعدات الثقيلةو1 بوصة مشبك كام بلاستيكي. قد يستخدم برنامجنا السنانير لحساب تكاليف الشحن أو عرض تفاصيل المنتج أو إدارة طلبات العملاء. يساعدنا السخرية من هذه الخطافات في كتابة اختبارات موثوقة وسريعة.
الخلاصة ودعوة العمل
السنانير السخرية هي جزء أساسي من اختبار تطبيقات رد الفعل. باستخدام التقنيات الصحيحة مثل السخرية اليدوية ، أو السخرية التلقائية من Jest ، أو مكتبة اختبار السنانير ، يمكنك التأكد من أن السنانير تعمل كما هو متوقع.
إذا كنت في السوق من أجل السنانير عالية الجودة ، سواء كانت خطافات القوة الصناعية ، أو أحزمة السقاطة السميكة للمعدات الثقيلة ، أو مشبك كام بلاستيكي 1 بوصة ، نحن هنا لخدمتك. نحن نقدم مجموعة واسعة من المنتجات التي تم تصميمها لتدوم. إذا كنت مهتمًا بشراء منتجاتنا ، فلا تتردد في التواصل معنا لمناقشة المشتريات. يسعدنا الإجابة على أي أسئلة قد تكون لديك وساعدك في العثور على المنتجات المناسبة لاحتياجاتك.


مراجع
- رد فعل الوثائق الرسمية
- الدعاء الوثائق الرسمية
- رد فعل رد فعل مكتبة الاختبار الرسمي
- React Hooks اختبار المكتبة الوثائق الرسمية