کتاب Node.js Test-Driven Development (TDD): توسعه مبتنی بر تست در Node.js با فرمت AZW3 برای کتابخوان کیندل و فرمت EPUB
دوره جامع Node.js Test-Driven Development (TDD): توسعه مبتنی بر تست دوره جامع Node.js Test-Driven Development (TDD): از تئوری تا ساخت یک API واقعی کدنویسی با اعتماد به نفس: کابوس باگها را برای همیشه ...
🎓 دوره آموزشی جامع
📚 اطلاعات دوره
عنوان دوره: دوره 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 و معرفی ابزارهای پیشرفتهتر
تگها:
JavaScript
Node.js
Node.js TDD
Node.js چیست
TDD
آموزش Node.js
برنامه نویسی
برنامه نویسی Node.js
برنامه نویسی وب
تست نرم افزار
تست نویسی
توسعه مبتنی بر تست
توسعه وب
جاوا اسکریپت
نرم افزار
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.