کتاب صوتی Node.js Test-Driven Development (TDD): توسعه مبتنی بر تست در Node.js
دوره جامع 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 و معرفی ابزارهای پیشرفتهتر
برای آموختن، همیشه لازم نیست بخوانید
گاهی بهترین فرصت یادگیری زمانی است که در مسیر رفتوآمد هستید، قدم میزنید، استراحت میکنید یا کارهای روزمرهتان را انجام میدهید. محتوای صوتی کمک میکند از این لحظهها برای شنیدن، اندیشیدن و آشنایی با موضوعات تازه بهره ببرید.
◷
یادگیری در دل روزمرگی
از زمان رفتوآمد، پیادهروی یا استراحت برای شنیدن محتوای مفید استفاده کنید؛ بدون آنکه همیشه به کتاب چاپی یا صفحه نمایش نیاز داشته باشید.
◎
تجربهای شنیداری و دلنشین
با روایت صوتی، توضیحات گفتاری و فضای شنیداری هر محتوا همراه شوید و متناسب با سلیقه خود، شیوه تازهای برای دریافت مطالب تجربه کنید.
✦
گسترش دانش و دیدگاه
با موضوعات متنوع آشنا شوید، ایدههای تازه کشف کنید و فرصت بیشتری برای یادگیری مستمر و پرورش کنجکاوی خود بسازید.
♫
همراه با سبک زندگی شما
محتوای صوتی را متناسب با برنامه روزانه خود انتخاب کنید و در زمان مناسب، شنیدن را به بخشی از عادتهای شخصیتان تبدیل کنید.
کتاب صوتی یا پادکست؟
کتاب صوتی
راهی برای همراه شدن با محتوای یک کتاب از طریق شنیدن. بسته به اثر، میتوانید داستانها، آموزشها، مفاهیم تخصصی یا مطالب کاربردی را در قالب روایت و بیان صوتی دنبال کنید.
مناسب برای شنیدن و مرور محتوای کتابها
پادکست آموزشی
فرصتی برای دنبال کردن موضوعات مشخص در قالب گفتوگو، روایت، توضیح آموزشی یا مجموعهای از قسمتهای صوتی؛ مناسب برای کشف ایدهها و آشنایی با دیدگاههای گوناگون.
مناسب برای یادگیری موضوعی و شنیدن دیدگاههای تازه
هر جا که هستید، شنیدن را آغاز کنید
با دستگاه مناسب خود، محتوای صوتی را به آسانی دنبال کنید.
▯
گوشی هوشمند
اندروید و آیفون
▣
تبلت
برای شنیدن و دنبال کردن محتوا
▤
رایانه و لپتاپ
با پخشکننده صوتی سازگار
♫
هدفون و بلندگو
برای شنیدن متناسب با محیط
چطور از تجربه شنیدن بیشتر بهره ببریم؟
✦ زمان مناسبی برای شنیدن انتخاب کنید؛ زمانی که بتوانید با آرامش به محتوا توجه داشته باشید.
✦ برای مطالب آموزشی، نکتههای مهم را یادداشت کنید یا پس از پایان شنیدن، آنها را مرور کنید.
✦ اگر محتوا طولانی است، آن را در چند نوبت دنبال کنید تا فرصت بیشتری برای درک و مرور داشته باشید.
✦ هنگام رانندگی یا انجام کارهای نیازمند تمرکز، ایمنی را در اولویت قرار دهید و از شیوه شنیدنی استفاده کنید که حواس شما را مختل نکند.
هر شنیدن، فرصتی برای کشف است
با کتابهای صوتی و پادکستهای آموزشی، دنیای تازهای از ایدهها، روایتها و آموختنیها را به لحظههای خود اضافه کنید.
express24.ir
امکانات پخش، ادامه شنیدن و دسترسی آفلاین به نوع فایل، دستگاه و نرمافزار مورد استفاده بستگی دارد.
تگها:
JavaScript
Node.js
Node.js TDD
Node.js چیست
TDD
آموزش Node.js
برنامه نویسی
برنامه نویسی Node.js
برنامه نویسی وب
تست نرم افزار
تست نویسی
توسعه مبتنی بر تست
توسعه وب
جاوا اسکریپت
نرم افزار
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.