اپلیکیشن اندرویدی فلشکارت آموزشی 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 و معرفی ابزارهای پیشرفتهتر
این اپلیکیشن فارسی برای یادگیری و مرور محتوای آموزشی از طریق فلشکارت طراحی شده است. کارتها را یکییکی مرور کنید، پاسخ پرسشها را به یاد بیاورید و نتیجه هر پاسخ را ثبت کنید. محتوای دوره پس از نصب درون برنامه در دسترس است تا برای مطالعه روزمره معمولاً به اتصال مداوم اینترنت نیاز نداشته باشید.
محتوای آموزشی در قالبهای متنوع ارائه میشود تا هم برای یادگیری مفاهیم جدید و هم برای تثبیت آموختهها قابل استفاده باشد.
- رابط کاربری فارسی و راستچین با فونت وزیر.
- تم روشن و تیره مطابق تنظیمات سیستم.
- صفحهبندی ساده برای انتخاب دوره و شروع مرور.
- نمایش تعداد دفعات مرور هر فصل.
- انتخاب چند فصل برای مرور همزمان.
- امکان تمرکز بر فصلهایی که هنوز مرور نشدهاند.
این اپلیکیشن برای دانشآموزان، دانشجویان، داوطلبان آزمونها و علاقهمندان به یادگیری طراحی شده است؛ بهویژه کسانی که میخواهند مطالب آموزشی را در زمانهای کوتاه مرور کنند، دانستههای خود را بسنجند و مطالعه منظمتری داشته باشند.
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.