شروع کار با Jest

چرا باید تست بنویسیم؟

به عنوان توسعه دهنده‌های نرم افزاری، مسئولیت اصلی ما اطمینان از کیفیت بالای نرم افزارهایمان است. اکنون، شما از کجا خواهید دانست که برنامه‌تان همه تست‌های کیفیت را پاس خواهد کرد؟ خب پس نوشتن تست‌ها برای اعتبارسنجی برنامه‌ها یکی از کارهای اساسی است که باید به عنوان یک توسعه دهنده انجام دهیم.

“کیفیت هیچگاه تصادفی نیست؛ کیفیت همیشه نتیجه تلاش‌های هوشمندانه است.” – John Ruskin

برخی اوقات ما معمولاً نوشتن تست‌ها برای کدمان را نادیده می‌گیریم و برای اینکار هزاران بهانه نظیر رسیدن به ددلاین‌ها، عدم اهمیت تست برای مشتری و غیره داریم. در صورتی که نوشتن تست‌ها باید بخشی از کارهای روزانه ما باشد و باید اینکار را به قسمتی از فرآیند کدنویسی تبدیل کنیم.

اگر شما در حال کدنویسی با جاوااسکریپت هستید، یکی از محبوب‌ترین و آسان‌ترین فریمورک‌های تست کردن Jest است.

Jest چیست؟

Jest یک فریمورک تست جاوااسکریپت است که امروزه به طور گسترده‌ای مورد استفاده قرار می‌گیرد. این فریمورک با همه فریمورک‌های مدرن جاوا اسکریپت مانند React، Angular، Vue، Node و نظایر این‌ها سازگاری دارد.

اگر شما کسی هستید که با تست نوشتن راحت نیستید، Jest نظر شما را عوض خواهد کرد. استفاده از آن فوق العاده آسان بوده و توسعه دهندگان عاشق نوشتن تست با Jest هستند.

جزئیات بیشتری درباره مزایای Jest

بدون پیکربندی

به یاد بیاورید که چقدر زمان باید صرف تنظیم فریمورک تست و بکارگیری آن درون برنامه شما شود.  Jest این کار را بسیار ساده‌تر کرده است و کلاً هیچ پیکربندی نیاز ندارد. این فریمورک به همان حالت در اکثر فریمورک‌های مدرن جاوااسکریپت بکار گرفته می‌شود و نیاز به تنظیمات خاصی ندارد. از این رو چندین ساعت از زمان شما را صرفه جویی می‌شود. از Jest می‌توان با برنامه‌های React و React Native بدون هیچ پیکربندی استفاده کرد.

Mock نویسی ساده

Jest نوشتن توابع mock را بسیار ساده کرده است. این فریمورک از resolver‌ های سفارشی برای ایمپورت شدن به تست‌های شما استفاده می‌کند و بنابراین mock کردن هر شی‌ای که خارج از تست شما است را آسان‌تر می‌کند.

Snapshot ها

Jest از snapshot‌ها استفاده می‌کند که می‌توانند تست برنامه شما را قادر به دنبال کردن شیء‌های بزرگ به طور سازمان یافته‌ای سازد. Snapshot‌ها یا در کنار تست‌های برنامه شما حضور داشته، یا درون آن گنجانده می‌شوند. این امر در صورتی که شما اشیاء بزرگی در redux ذخیره کرده باشید و خواهان اعتبارسنجی اطلاعات آن باشید، بسیار کاربردی است.

تست‌ها به صورت موازی اجرا می‌شوند.

این یکی از ویژگی‌های برجسته Jest است که آن را برای توسعه سریع مناسب می‌سازد. تست‌ها به صورت موازی و به صورت جدا از هم اجرا می‌شوند. به دلیل اینکه این تست‌ها فرآیندهای مخصوص به خود را دارند، این امر عملکرد را بهینه می‌کند.

سرعت

به دلیل اینکه تست‌ها به صورت موازی اجرا می‌شوند، Jest یک گزینه سریع برای تست کردن برنامه‌ها است. این فریمورک همچنین در ابتدا تست‌های ناموفق را اجرا کرده و اجرای تست‌ها را بر اساس مدت زمانی که تست‌ها طول می‌کشند، سازمان دهی مجدد می‌کند.

مستندات بسیار خوب

API‌های Jest به صورت واضح و خوبی مستند سازی شده‌اند. شما می‌توانید در میان این APIها جستجو کنید تا نحوه شروع بکار با Jest را بیابید.

تست Snapshot با Jest

تست Sanpshot اطمینان می‌یابد که UI شما به طور غیر مترقبه‌ای تغییر نمی‌کند. ایده این کار بسیار ساده است. یک Sanpshot اولیه از کامپوننت UI گرفته می‌شود و با فایل snapshot ذخیره شده در تست مقایسه می‌شود. اگر دو snapshot با هم همخوانی نداشته باشند، تست ناموفق است. این کار به ما نشان می‌دهد که تغییر غیرمترقبه بوده است یا snapshot مرجع نیاز به به روز رسانی برای آخرین ورژن کامپوننت UI دارد.

این نوع تست‌ها در حین تست برنامه‌های موبایل بسیار رایج است.

Jest از تست snapshot برای کامپوننت‌های React/React Native پشتیبانی می‌کند. ممکن است به این فکر کنید که به روز رسانی snapshotهای مرجع با تغییرات UI شما کار ساده‌ای خواهد بود. Jest این فرآیند را برای شما ساده کرده است. شما تنها نیاز به اجرای یک دستور برای به روز رسانی snapshotها و جایگزینی snapshot جدید با قبلی دارید.

حرکت به سوی Jest از یک کدبیس موجود

افراد همیشه پروژه جدید شروع نمی‌کنند. در واقعیت اگر شما یک کد موجود با یک فریمورک تست دیگر داشته باشید و بخواهید به Jest مهاجرت کنید، این کار بسیار ساده خواهد بود.

  • اگر شما در Jasmine یا Mocha باشید، Jest با این فریمورک‌ها سازگار بوده و انتقال ساده است.
  • برای سایر فریمورک‌ها شما می‌توانید از codemodها برای انتقال خودکار تست هایتان استفاده کنید.

چه کسانی از Jest استفاده می‌کند؟

Jest امروزه توسط ۵۰۰ شرکت برای تست محصولات‌شان استفاده می‌شود.

این فریمورک در اصل توسط فیس بوک توسعه داده شده و برای جامعه برنامه نویسان جهت استفاده و توسعه متن باز شده است.

فیس بوک، توییتر، Airbnb، اینستاگرام، اسپاتیفای و بسیاری از استارتاپ‌های بزرگ همگی از این فریمورک برای تست محصولات‌شان که با جاوااسکریپت نوشته شده است، بهره می‌گیرند.

وضعیت پرسش‌نامه سال ۲۰۱۸ جاوااسکریپت نشان می‌دهد که Jest محبوب‌ترین و پر استفاده‌ترین فریمورک برای جاوااسکریپت است و حدود ۳۹٫۶% از توسعه دهندگان از آن استفاده می‌کنند.

Jest یک فریمورک تست قدرتمند است و ما پیشنهاد می‌کنیم که حتما آن را امتحان نمایید.

 

منبع: programmingwithmosh.com

دیدگاه‌ها:

افزودن دیدگاه جدید