منصوبے کے بارے میں

Enzyme ایک JavaScript ٹیسٹنگ یوٹیلیٹی ہے جو React کمپوننٹس کے آؤٹ پٹ کی ٹیسٹنگ کو آسان بناتی ہے۔ یہ ڈویلپرز کو رینڈر شدہ آؤٹ پٹ کے ذریعے manipulate، traverse اور کچھ حد تک runtime کو simulate کرنے کی سہولت دیتی ہے۔ اس کا API DOM manipulation اور traversal کے لیے jQuery کے API کی نقل کرتے ہوئے intuitive اور flexible بنایا گیا ہے۔ اہم صلاحیتیں: - Shallow rendering: کسی کمپوننٹ کو ایک سطح گہرائی تک رینڈر کریں اور جو وہ واپس کرتا ہے اس پر assert کریں، بغیر DOM کی ضرورت کے۔ - Full DOM rendering (mount): کمپوننٹس کو حقیقی DOM ماحول میں رینڈر کریں، جو lifecycle methods، props کی تبدیلیوں اور event simulation کی سہولت فراہم کرتا ہے۔ - Static rendering: کمپوننٹس کو static HTML markup میں رینڈر کریں اور حاصل ہونے والی ساخت کا تجزیہ کریں۔ Adapters: Enzyme کو استعمال ہونے والے React ورژن کے مطابق adapter کی ضرورت ہوتی ہے۔ سرکاری adapters میں React 16.x، 15.x، 0.14.x اور 0.13.x شامل ہیں۔ Preact اور Inferno کے لیے تھرڈ پارٹی adapters موجود ہیں۔ Test runner مطابقت: Enzyme test runners اور assertion لائبریریوں کے بارے میں unopinionated ہے۔ دستاویزات کی مثالیں Mocha اور Chai استعمال کرتی ہیں، اور Jest، Jasmine، should.js اور expect کے لیے ساتھ والی matcher لائبریریاں موجود ہیں۔ React Hooks: Enzyme React hooks کی سپورٹ فراہم کرتا ہے، لیکن shallow rendering میں کچھ حدود ہیں جو React کے upstream shallow renderer کے مسائل کی وجہ سے ہیں (useEffect/useLayoutEffect کال نہیں ہوتے، useCallback memoize نہیں ہوتا)۔ React 16.8+ کے ساتھ mount کے لیے، Enzyme simulate، setProps، setContext اور invoke جیسے APIs کو ReactTestUtils.act() کے ساتھ wrap کرتا ہے۔ تنصیب npm کے ذریعے ہوتی ہے، جس میں enzyme اور مناسب adapter انسٹال کیا جاتا ہے۔ کنفیگریشن top-level configure() API کے ذریعے کی جاتی ہے۔