سلام! من به عنوان تأمین کننده قلاب ، مدتی در بازی بوده ام و می دانم تست صحیح قلاب ها چقدر مهم است. یکی از جنبه های مهم آزمایش قلاب ها ، مسخره کردن آنها به طور مؤثر است. بنابراین ، بیایید به آنچه فکر می کنم بهترین راه برای مسخره کردن قلاب ها در آزمایشات است ، شیرجه بزنیم.
چرا قلاب ها را در تست ها مسخره می کنیم؟
اول از همه ، چرا ما حتی باید قلاب ها را مسخره کنیم؟ خوب ، قلاب ها اغلب با منابع خارجی مانند API ها ، پایگاه داده ها یا مرورگر ساخته شده - در توابع تعامل دارند. هنگامی که ما در حال نوشتن تست های واحد هستیم ، می خواهیم مؤلفه یا عملکردی را که آزمایش می کنیم جدا کنیم. قلاب های مسخره به ما امکان می دهد تا ورودی و خروجی این قلاب ها را کنترل کنیم و تست های ما را قابل اطمینان تر و سریعتر کنیم.
به عنوان مثال ، اگر از قلاب سفارشی استفاده می کنید که داده ها را از API دریافت می کند ، نمی خواهید به API واقعی موجود در دسترس باشد و داده های مداوم را در طول آزمون برگردانید. در عوض ، می توانید قلاب را مسخره کنید تا مجموعه ای از داده های از پیش تعریف شده را برگردانید.
راه های مختلف برای مسخره کردن قلاب ها
1. مسخره کردن دستی
یکی از ساده ترین راه های مسخره کردن قلاب ها ، انجام آن به صورت دستی است. بیایید بگوییم شما یک قلاب سفارشی به نام داریدusefetchdataکه برخی از داده ها را از API دریافت می کند.
// usefetchdata.js واردات {useeffect ، useState} از "React" ؛ const usefetchdata = () => {const [داده ، setData] = useState (null) ؛ const [بارگیری ، تنظیم بار] = useState (درست) ؛ UseEffect (() => {const fetchdata = async () => {سعی کنید {پاسخ const = await fetch ('https://example.com/api/data') ؛ نتیجه const = پاسخ پاسخ. json () ؛ setData (نتیجه) ؛ setloading (false) ؛ inda} cater (خطای) (خطای). } ؛ بازگشت {داده ، بارگیری} ؛ } ؛ صادرات پیش فرض UseFetchData ؛
برای اینکه به صورت دستی این قلاب را در یک آزمایش مسخره کنید ، می توانید یک اجرای مسخره ایجاد کنید.
// __mocks __/usefetchdata.js const usefetchdata = () => {Return {داده: {پیام: 'داده های مسخره'} ، بارگیری: false} ؛ } ؛ صادرات پیش فرض UseFetchData ؛
در پرونده تست خود می توانید از این مسخره استفاده کنید.
واردات از "React" واکنش نشان می دهد. وارد کردن {رندر ، صفحه} از '@testing-library/react' ؛ وارد کردن مؤلفه thatusesfetchData از './componentthatusesfetchdata' ؛ jest.mock ('./ usefetchdata') ؛ توصیف کنید ("ComponentThatusEsfetchData" ، () => {it ("باید داده های مسخره را نمایش داده شود" ، () => {رندر (<componentthatusesfetchdata />) ؛ const dataElement = screen.getByText ('داده های مسخره') ؛ انتظار (dataElement).
تمسخر دستی به شما کنترل کامل بر اجرای مسخره می دهد. می توانید مقادیر بازگشت را بر اساس سناریوهای مختلف آزمون تغییر دهید. با این حال ، می تواند کمی وقت باشد - مصرف ، به خصوص اگر قلاب های زیادی برای مسخره کردن دارید.
2. با استفاده از تمسخر اتوماتیک JEST
JEST یک ویژگی دارد که در آن می تواند به طور خودکار مسخره را برای شما ایجاد کند. اگر در یک پرونده قلاب دارید ، Jest می تواند با برخی از رفتارهای پیش فرض ، نسخه مسخره ای از آن قلاب ایجاد کند.
به عنوان مثال ، اگر یک قلاب ساده مانند داریدپیشرو:
// useCounter.js واردات {useState} از 'React' ؛ const usecounter = () => {const [count ، setCount] = useState (0) ؛ const افزایش = () => setCount (تعداد + 1) ؛ بازگشت {تعداد ، افزایش} ؛ } ؛ صادرات پیش فرض USECounter ؛
در تست خود می توانید از تمسخر اتوماتیک Jest استفاده کنید.
واردات از "React" واکنش نشان می دهد. وارد کردن {رندر ، صفحه} از '@testing-library/react' ؛ واردات مؤلفه از './componentthatusescounter' ؛ jest.mock ('./ usecounter') ؛ توصیف کنید ('ComponentThatusEscounter' ، () => {it ('باید از پیشخوان مسخره استفاده کنید ، () => {رندر (<componentThatUsescounter />) ؛ // در صورت لزوم می توانید مسخره را در اینجا سفارشی کنید // به عنوان مثال ، اگر مؤلفه افزایش می یابد ، می توانید رفتار جیب را بررسی کنید) ؛}) ؛
مزیت استفاده از تمسخر اتوماتیک JEST این است که تنظیم سریع و آسان است. اما ممکن است به اندازه مسخره کردن دستی انعطاف پذیر نباشد ، به خصوص هنگامی که به رفتار مسخره ای بسیار خاص نیاز دارید.
3. با استفاده از کتابخانه تست React و کتابخانه تست قلاب واکنش
کتابخانه تست React Hooks ابزاری عالی برای آزمایش قلاب است. این برنامه ها را برای تهیه قلاب و آزمایش رفتار آنها فراهم می کند.
بیایید بگوییم شما قلاب دارید که جمع دو شماره را محاسبه می کند:
// UseSum.js واردات {useState} از 'React' ؛ const Usesum = (a ، b) => {const [sum ، setSum] = useState (a + b) ؛ مبلغ بازگشت ؛ } ؛ صادرات پیش فرض UseSum ؛
برای آزمایش این قلاب می توانید از کتابخانه تست React Hooks استفاده کنید و در صورت لزوم هرگونه وابستگی را مسخره کنید.
وارد کردن {RenderHook} از '@testing-library/react-hooks' ؛ واردات استفاده از './usesum' ؛ توصیف کنید ('useSum' ، () => {it ('باید مبلغ را به درستی محاسبه کنید "، () => {const {نتیجه} = renderhook (() => assustum (2 ، 3)) ؛ انتظار (نتیجه. current) .tobe (5) ؛}) ؛}) ؛
اگر قلاب شما وابستگی های خارجی دارد ، می توانید از همان اصول دستی یا مسخره کردن برای اداره آنها استفاده کنید.
بهترین روشها برای مسخره کردن قلاب
- مسخره ها را ساده نگه دارید: مسخره های شما باید تا حد امکان ساده باشد. آنها فقط باید از رفتاری که به آزمون شما نیاز دارد تقلید کنند. بیش از - مسخره های پیچیده می توانند تست های شما را برای درک و نگهداری سخت کنند.
- سناریوهای مختلف را تست کنید: با تغییر داده های مسخره ، سناریوهای مختلف را آزمایش کنید. به عنوان مثال ، اگر قلاب شما حالت های مختلفی مانند بارگیری ، موفقیت و خطا دارد ، با بازگشت مقادیر مختلف مسخره ، همه این حالت ها را آزمایش کنید.
- نگرانی های جداگانه: مسخره های خود را از کد تولید خود جدا نگه دارید. این امر باعث می شود مدیریت و به روزرسانی آنها با تکامل پایه کد شما آسانتر شود.
برنامه های واقعی - برنامه های جهانی در تجارت قلاب ما
ما به عنوان یک تأمین کننده قلاب ، انواع مختلفی از قلاب ها را داریم.قلاب های قدرت صنعتیکه در کاربردهای سنگین استفاده می شوند. هنگامی که ما نرم افزاری را برای مدیریت موجودی ، سفارشات ردیابی یا نمایش اطلاعات محصول خود ایجاد می کنیم ، در برنامه های React خود از قلاب استفاده می کنیم.
آزمایش این قلاب ها برای اطمینان از درست کار نرم افزار ما بسیار مهم است. به عنوان مثال ، اگر قلاب ای داشته باشیم که سطح سهام قلاب های قدرت صنعتی ما را از یک پایگاه داده بدست می آورد ، می توانیم این قلاب را در تست های خود مسخره کنیم تا از تکیه بر پایگاه داده واقعی جلوگیری کنیم.
ما همچنین محصولاتی مانندتسمه های ضخیم برای تجهیزات سنگینوتدست و پنجه نرم پلاستیکی 1 اینچیبشر نرم افزار ما ممکن است از قلاب برای محاسبه هزینه حمل و نقل ، نمایش جزئیات محصول یا مدیریت سفارشات مشتری استفاده کند. مسخره کردن این قلاب ها به ما کمک می کند تا تست های قابل اعتماد و سریع را بنویسیم.
نتیجه گیری و فراخوانی به عمل
Mocking Hooks بخش اساسی در آزمایش برنامه های React است. با استفاده از تکنیک های مناسب مانند تمسخر دستی ، تمسخر خودکار JEST یا کتابخانه تست قلاب واکنش ، می توانید اطمینان حاصل کنید که قلاب های شما مطابق انتظار کار می کنند.
اگر در بازار قلاب های با کیفیت بالا ، چه قلاب های با استحکام صنعتی ، تسمه های ضخیم برای تجهیزات سنگین یا سگک پلاستیکی 1 اینچی ، در اینجا هستیم ، ما اینجا هستیم تا به شما خدمت کنیم. ما طیف گسترده ای از محصولات را ارائه می دهیم که برای ماندگاری ساخته شده اند. اگر علاقه مند به خرید محصولات ما هستید ، برای بحث در مورد تهیه به ما مراجعه کنید. ما خوشحالیم که به هر سؤالی که ممکن است پاسخ دهید و به شما در یافتن محصولات مناسب برای نیازهای خود کمک می کنیم.


منابع
- واکنش مستندات رسمی
- شوخی های رسمی
- آزمایش واکنش اسناد رسمی کتابخانه
- React Hooks Testing Library مستندات رسمی