دوره آموزش Jest
تو این دوره میخواهیم با Jest آشنا بشیم و یاد بگیریم چطور تستهای خودمون رو بنویسیم. از نصب Jest شروع میکنیم، سپس با نوشتن تستهای ساده، همسانکنندهها، تستهای غیرهمزمان و شبیهسازی ماژولها آشنا میشیم. در ادامه به مدیریت تستها، تحلیل پوشش کد و استفاده از ابزارهای مختلف مثل Jest CLI میپردازیم. این دوره به شما کمک میکنه تا تستهای دقیق و کارآمد برای پروژههای جاوا اسکریپت و ریاکت بنویسید.
سرفصل های دوره
برای مشاهده ویدیوها ابتدا دکمه شرکت در دوره را بزنید
فصل اول: مقدمه و معرفی
Jest یکی از محبوبترین فریمورکهای تستنویسی جاوا اسکریپت است که توسط فیسبوک توسعه داده شده است. در این بخش، با ویژگیها و مزایای این فریمورک آشنا خواهید شد.
Jest با ویژگیهایی مانند تست خودکار، گزارشگیری ساده، و راحتی در پیکربندی، به یکی از بهترین گزینهها برای نوشتن تستهای خودکار تبدیل شده است.
در این بخش، مراحل نصب Jest در پروژههای جاوا اسکریپت را به شما نشان خواهیم داد و توضیح میدهیم که چگونه تستهای خود را به راحتی پیادهسازی کنید.
فصل دوم: نوشتن تست های اولیه
ساختار مناسب برای تستها به شما کمک میکند تا کدهای تست تمیز و قابل درک باشند. در این درس، یاد میگیرید چگونه تستهای خود را در Jest به خوبی سازماندهی کنید.
تابع it به شما کمک میکند تا بخشهای مختلف کد خود را تست کنید. در این درس با کاربرد و نحوه استفاده از تابع it در Jest آشنا میشوید.
زمان آن رسیده که اولین تست خود را اجرا کنید! با این درس، گام به گام تا نوشتن و اجرای اولین تست در Jest پیش بروید و شروع به تستنویسی کنید.
فصل سوم: همسانکنندههای عمومی در Jest
با toBe میتوانید مقدارها را به صورت دقیق مقایسه کنید و مطمئن شوید که نتیجه کد همان چیزی است که انتظار دارید.
با toEqual میتوانید اشیاء و آرایهها را به راحتی مقایسه کنید و اطمینان حاصل کنید که ساختار و محتوا یکسان هستند.
اگر به مقایسهای دقیقتر از toEqual نیاز دارید، toStrictEqual را انتخاب کنید تا مطمئن شوید که ساختار دادهها دقیقاً همان چیزی است که باید باشد.
از این همسانکنندهها برای اطمینان از اینکه مقادیر به درستی به عنوان null، تعریف نشده یا تعریف شده تشخیص داده شدهاند، استفاده کنید.
با استفاده از toBeTruthy و toBeFalsy، مقادیر خود را بر اساس درست یا غلط بودن بررسی کنید و اطمینان حاصل کنید که منطق برنامه به درستی عمل میکند.
فصل چهارم: همسان کننده های انواع داده ای (Data Type Matchers)
اگر میخواهید درستی محاسبات عددی خود را بررسی کنید، از همسانکنندههای عددی در Jest استفاده کنید. در این درس با روشهای بررسی مقادیر عددی آشنا میشوید.
تست اعداد اعشاری چالشهای خاص خود را دارد! در این درس یاد میگیرید که چگونه مقدارهای اعشاری را بهدرستی در Jest مقایسه کنید.
آیا میخواهید بررسی کنید که یک رشته شامل یک الگوی خاص است یا طول مشخصی دارد؟ با این درس یاد بگیرید که چگونه رشتهها را در Jest تست کنید.
آیا آرایه شما مقدار خاصی دارد؟ آیا یک شیء دارای یک ویژگی مشخص است؟ در این درس یاد بگیرید که چگونه آرایهها و اشیا را در Jest بررسی کنید.
گر میخواهید مطمئن شوید که کد شما در شرایط خاص خطا تولید میکند، toThrow و toThrowError بهترین گزینههای شما در Jest هستند!
آیا میخواهید مطمئن شوید که یک مقدار خاص در خروجی وجود ندارد؟ با استفاده از not در Jest، تستهای خود را قدرتمندتر کنید.
فصل پنجم : گروه بندی و چرخه حیات تست ها (Grouping And Test Life Cycle)
آیا تستهای شما شلوغ و نامرتب هستند؟ با context تستهای خود را دستهبندی کنید و کدهای تستنویسی خود را خواناتر کنید.
با beforeAll و afterAll تستهای خود را مدیریت کنید! در این درس، نحوه اجرای کد قبل و بعد از گروههای تست را یاد بگیرید و تستهای ساختاریافتهتر بنویسید.
آیا هر تست نیاز به تنظیمات خاصی دارد؟ با beforeEach و afterEach در Jest میتوانید قبل و بعد از هر تست عملیات خاصی اجرا کنید و تستهای حرفهایتری داشته باشید.
با each تو Jest میتونی یه تست رو روی کلی داده مختلف اجرا کنی، بدون اینکه برای هر کدوم جدا تست بنویسی؛ خلاصه تمیزترین راه برای تست پارامتریکه!
فصل ششم : آموزش تست توابع غیرهمزمان (Promise، Async/Await و Callback)
توی این بخش یاد میگیری چطور Promiseها رو تو Jest تست کنی؛ چه زمانی که موفق میشن (resolve) چه زمانی که خطا میدن (reject)، همه چی مرتب و قابل کنترل!
توی این بخش یاد میگیری چطور توابع async/await رو تو Jest تست کنی؛ خیلی راحت میتونی مطمئن شی که کد غیرهمزمانت درست کار میکنه و خطاها هم درست مدیریت میشن!
اینجا یاد میگیری چطور توابع callback قدیمی رو هم تو Jest تست کنی؛ مطمئن میشی که callback تو زمان درست صدا زده میشه و جوابش همونیه که باید باشه!
فصل هفتم: آموزش شبیهسازی توابع، ماژولها، تایمر و درخواست HTTP در Jest
توی این بخش یاد میگیری چطوری با jest.fn() یه تابع ساختگی بسازی تا بتونی تست کنی که چند بار اجرا شده، چه پارامترهایی گرفته یا اصلاً اجرا شده یا نه!
تو این بخش یاد میگیری چطور با mockReturnValueOnce یا mockImplementation کاری کنی که یه تابع ماکشده، تو هر بار اجرا خروجی متفاوتی بده. این یعنی میتونی رفتارهای مختلف یه تابع رو تو سناریوهای مختلف تست کنی!
اینجا یاد میگیری چطور با jest.mock() یه ماژول کامل رو شبیهسازی کنی. مثلاً وقتی نمیخوای تو تستت واقعاً به دیتابیس وصل شی یا فایل واقعی بخونه، فقط ماژول رو ماک میکنی و خیال خودتو راحت!
اینجا یاد میگیری چطور درخواستهای HTTP مثل fetch یا axios رو ماک کنی تا تو تستها واقعاً به اینترنت وصل نشی. همهچی سریع، ایزوله و تحت کنترل تو!
توی این بخش یاد میگیری چطوری با jest.useFakeTimers() تایمرهایی مثل setTimeout و setInterval رو تو تستا کنترل کنی. اینطوری لازم نیست صبر کنی، زمان تو دست توئه!
فصل هشتم: آموزش Code Coverage، Snapshot Testing و مدیریت تستها در Jest
تو این بخش یاد میگیری چطور بفهمی تستهات واقعاً چقدر از کدت رو پوشش دادن! با ابزار Code Coverage تو Jest کار میکنیم و تو یه پروژه واقعی گزارش دقیق میگیریم که بدونی کجاها خوب تست کردی و کجاها جا داره بهتر شی.
اینجا یاد میگیری چطور با only فقط یه تست خاص رو اجرا کنی یا با skip تستهایی که فعلاً نمیخوای اجرا بشن رو موقتاً کنار بذاری. فوقالعاده به درد بخور برای زمانی که داری دیباگ میکنی!
توی این بخش یاد میگیری چطوری با Snapshot تو Jest از خروجی یه تابع یا کامپوننت یه عکس بگیری، و هر بار که تست میزنی، مطمئن شی چیزی بدون اطلاع تغییر نکرده. عالی برای گرفتن جلوی تغییرات ناخواسته تو کد!
اینجا یاد میگیری چطور تستهاتو مستقیم با دستورات jest از خط فرمان اجرا کنی، و با کمک nodemon کاری کنی که هر بار کدت عوض شد، تستها خودشون دوباره اجرا شن. سریع و بدون دردسر!
تو این بخش یاد میگیری چطوری با jest.config.js کنترل کامل تستهات رو بهدست بگیری! از تعیین مسیرها گرفته تا تنظیم ignoreها و تعریف alias، همهچی تو دست خودته!
تو این بخش یاد میگیری چطور افزونه Jest رو تو VSCode نصب و فعال کنی تا تستهاتو مستقیم از محیط ادیتورت ببینی، اجرا کنی و خیلی سریع دیباگشون کنی. تجربه تستنویسیت رو یهلِوِل میبره بالا!