دوره Node.js Test-Driven Development (TDD): توسعه مبتنی بر تست در Node.js همراه با فلشکارت آموزشی — ارائه روی فلش مموری
🎓 دوره آموزشی جامع
📚 اطلاعات دوره
عنوان دوره: دوره Node.js Test-Driven Development (TDD): توسعه مبتنی بر تست در Node.js
موضوع کلی: برنامه نویسی
موضوع میانی: نود جیاس (Node.js)
📋 سرفصلهای دوره
- 1. مقدمهای بر توسعه مبتنی بر تست (TDD)
- 2. چرا TDD مهم است؟ مزایا و معایب
- 3. چرخه TDD: Red, Green, Refactor
- 4. معرفی تستینگ در Node.js
- 5. تنظیم محیط توسعه Node.js برای تست
- 6. مرور مفاهیم پایه جاوااسکریپت برای تست
- 7. معرفی Jest: فریمورک تست محبوب
- 8. نصب و راهاندازی Jest در پروژه Node.js
- 9. اولین تست با Jest: "Hello World"
- 10. اجرای تستها و درک خروجی
- 11. ساختاردهی فایلهای تست و پوشهها
- 12. بلوکهای `describe` برای گروهبندی تستها
- 13. نوشتن یک تست واحد با `test` و `it`
- 14. اصول Assertions: بررسی نتایج
- 15. استفاده از `expect().toBe()` برای مقایسه دقیق
- 16. مقایسه اشیاء و آرایهها با `expect().toEqual()`
- 17. بررسی مقادیر null، undefined، و defined
- 18. تست مقادیر true و false با `toBeTruthy()` و `toBeFalsy()`
- 19. تست مقادیر عددی: `toBeGreaterThan()`, `toBeLessThan()`
- 20. بررسی وجود آیتم در آرایه با `toContain()`
- 21. تطابق با رشتهها و عبارات باقاعده: `toMatch()`
- 22. تست توابع پرتابکننده خطا: `toThrow()`
- 23. سفارشیسازی Assertion Matchers (مقدمه)
- 24. Hooks در Jest: `beforeAll()`, `afterAll()`
- 25. Hooks در Jest: `beforeEach()`, `afterEach()`
- 26. مدیریت وضعیت تستها با Hooks
- 27. دامنه اجرایی Hooks: فایل یا describe block
- 28. صرفنظر کردن از تستها با `skip()`
- 29. تمرکز بر تستهای خاص با `only()`
- 30. حالت Watch Mode در Jest برای توسعه سریع
- 31. چالشهای تست کدهای ناهمگام (Asynchronous)
- 32. تست توابع Callback: استفاده از `done()`
- 33. تست Promiseها: انتظار برای حل شدن
- 34. تست Promiseها: انتظار برای رد شدن
- 35. تست توابع `async/await`: رویکرد مدرن
- 36. مدیریت خطاها در تستهای ناهمگام
- 37. Mock کردن Timers برای `setTimeout`/`setInterval`
- 38. استفاده از `jest.useFakeTimers()` و `advanceTimersByTime()`
- 39. تست Event Emitters
- 40. مثال عملی: تست یک تابع API ساده
- 41. تنظیم محیط تست برای عملیات I/O
- 42. اهمیت تمیزکاری منابع در تستهای ناهمگام
- 43. معرفی Test Doubles: چرا و چگونه؟
- 44. Spies: ردیابی فراخوانی توابع با `jest.fn()`
- 45. بررسی تعداد فراخوانیها و آرگومانها
- 46. Mock کردن مقدار بازگشتی با `mockReturnValue()`
- 47. Mock کردن مقادیر بازگشتی ناهمگام: `mockResolvedValue()`
- 48. Mock کردن پیادهسازی با `mockImplementation()`
- 49. `jest.spyOn()`: ردیابی متدهای موجود
- 50. تفاوت `jest.fn()` و `jest.spyOn()`
- 51. Mock کردن ماژولها با `jest.mock()`
- 52. Mock کردن دستی ماژولها (Manual Mocks)
- 53. Mock کردن فراخوانیهای HTTP خارجی (axios, fetch)
- 54. Mock کردن سیستم فایل (fs module)
- 55. بازگرداندن وضعیت اصلی بعد از Mockها با `mockRestore()`
- 56. Dependency Injection برای افزایش قابلیت تستپذیری
- 57. انتخاب صحیح بین Mock و Stub
- 58. پرهیز از Over-Mocking: وقتی Mock زیاد میشود
- 59. مثال عملی: Mock کردن یک سرویس خارجی
- 60. Mock کردن زمان و تاریخ برای تستهای وابسته به زمان
- 61. اصول تست واحد (Unit Testing)
- 62. تست توابع Pure: سادهترین حالت
- 63. تست ماژولهای Utility و Helper
- 64. تست کلاسها و متدهای آنها
- 65. تست Event Emitters سفارشی
- 66. تست ماژولهای پیکربندی (Configuration)
- 67. تست توابع تبدیل داده (Data Transformation)
- 68. تست منطق اعتبارسنجی (Validation Logic)
- 69. استراتژیهای تست Error Handling در واحدها
- 70. تست متدهای خصوصی (Indirectly)
- 71. تست توابع با وابستگی به Environment Variables
- 72. ساختاردهی فایلهای تست واحد برای خوانایی
- 73. معیارهای پوشش کد (Code Coverage)
- 74. تولید گزارشهای پوشش کد با Jest
- 75. تحلیل و تفسیر گزارشهای پوشش کد
- 76. مقدمهای بر تست یکپارچگی (Integration Testing)
- 77. تفاوت تست واحد و تست یکپارچگی
- 78. تست APIهای HTTP در Node.js (با Express/Fastify)
- 79. استفاده از Supertest برای تست Endpoints
- 80. TDD برای توسعه RESTful APIها
- 81. تست Endpointهای GET: بازیابی دادهها
- 82. تست Endpointهای POST: ایجاد منابع جدید
- 83. تست Endpointهای PUT/PATCH: بهروزرسانی منابع
- 84. تست Endpointهای DELETE: حذف منابع
- 85. تست اعتبارسنجی ورودی (Input Validation) در API
- 86. تست Middleware احراز هویت (Authentication)
- 87. تست Middleware مجوزدهی (Authorization)
- 88. تست یکپارچگی با پایگاه داده واقعی (Introduction)
- 89. راهاندازی و تمیزکاری پایگاه داده برای تستها
- 90. مدیریت تراکنشها در تستهای یکپارچگی پایگاه داده
- 91. بازسازی کد (Refactoring) با اطمینان خاطر در TDD
- 92. TDD برای افزودن ویژگیهای جدید
- 93. تست رگرسیون (Regression Testing) با TDD
- 94. نوشتن تستهای پایدار و قابل نگهداری
- 95. خوانایی تستها و قراردادهای نامگذاری (Naming Conventions)
- 96. مقابله با Flaky Tests (تستهای ناپایدار)
- 97. تستهای پارامتری (Parametrized Tests) با `test.each`
- 98. Snapshot Testing: برای چه مواردی مفید است؟
- 99. ادغام TDD و تستها در چرخه CI/CD
- 100. آینده TDD در Node.js و معرفی ابزارهای پیشرفتهتر
محتویات بسته آموزشی
🌐 سامانه آنلاین فلشکارت؛ مرور هدفمند و هوشمند
اکانت ارائهشده، دسترسی به نسخه تحت وب سامانه فلشکارت ویژه این دوره را فراهم میکند. این سامانه از الگوریتم زمانبندی مرور SM-2 استفاده میکند و بر اساس ارزیابی شما از میزان یادآوری هر کارت، زمان مرورهای بعدی را تنظیم میکند.
به این ترتیب، کارتهای دشوارتر میتوانند زودتر مرور شوند و برای تثبیت مطالب در حافظه، برنامه مرور متناسبتری داشته باشید.
مدتزمان معادل آموزشی بر اساس برآورد این دوره در گواهی درج میشود.
گواهی دوزبانه با استعلام آنلاین
پس از تکمیل فعالیتهای لازم و تأیید درخواست، گواهی پایان دوره به زبان فارسی و انگلیسی صادر میشود. گواهی دارای لینک اختصاصی و QR Code برای بررسی و استعلام آنلاین است.
این گواهی صرفاً بهعنوان گواهی اتمام دوره آموزشی صادر میشود و معادل مدرک دانشگاهی، آکادمیک یا مدرک رسمی مورد تأیید نهادهای دولتی نیست. صدور آن منوط به تکمیل شرایط دوره و تأیید نهایی درخواست است.
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.