دوره Typescript: استفاده از Mocha همراه با فلشکارت آموزشی — ارائه روی فلش مموری
📚 کتاب آموزشی جامع
📚 اطلاعات کتاب
عنوان کتاب: کتاب Typescript: استفاده از Mocha
موضوع کلی: برنامه نویسی
موضوع میانی: تایپ اسکریپت (TypeScript)
📋 سرفصلهای کتاب (100 موضوع)
- 1. مقدمه دوره و اهداف یادگیری
- 2. چرا تست نویسی اهمیت دارد؟
- 3. انواع تست: واحد (Unit)، یکپارچهسازی (Integration)، انتها به انتها (End-to-End)
- 4. معرفی Mocha به عنوان یک فریمورک تست
- 5. مروری سریع بر تایپ اسکریپت: چرا تایپ اسکریپت؟
- 6. نصب و راهاندازی محیط توسعه (Node.js, npm, VS Code)
- 7. ایجاد اولین پروژه تایپ اسکریپت (`tsconfig.json`)
- 8. مبانی تایپها در تایپ اسکریپت (string, number, boolean)
- 9. کار با آرایهها و Tupleها در تایپ اسکریپت
- 10. معرفی Interface و Type Alias
- 11. توابع و انواع آنها در تایپ اسکریپت
- 12. مبانی کلاسها و وراثت در تایپ اسکریپت
- 13. ماژولها در تایپ اسکریپت (Import/Export)
- 14. راهاندازی Mocha و تایپ اسکریپت در یک پروژه
- 15. نصب پکیجهای مورد نیاز (`mocha`, `typescript`, `ts-node`, `@types/mocha`)
- 16. نوشتن اولین تست با Mocha و تایپ اسکریپت
- 17. ساختار یک فایل تست: `describe` و `it`
- 18. اجرای تستها از طریق خط فرمان
- 19. معرفی کتابخانههای Assertion: چرا به آنها نیاز داریم؟
- 20. آشنایی با کتابخانه Chai
- 21. راهاندازی Chai در پروژه تایپ اسکریپت
- 22. استفاده از `expect` در Chai برای Assertion
- 23. استفاده از `should` در Chai برای Assertion
- 24. استفاده از `assert` در Chai برای Assertion
- 25. مقایسه سبکهای BDD (`expect`/`should`) و TDD (`assert`)
- 26. مفهوم Hooks در تست نویسی
- 27. کار با `before()` و `after()`
- 28. کار با `beforeEach()` و `afterEach()`
- 29. تست کردن توابع ساده و خالص (Pure Functions)
- 30. سازماندهی تستها با `describe` های تودرتو
- 31. اجرای تنها یک تست خاص با `.only()`
- 32. نادیده گرفتن یک تست با `.skip()`
- 33. تست کردن خروجیهای مختلف یک تابع
- 34. تست کردن مقادیر Truthy و Falsy
- 35. تست کردن برابری عمیق (Deep Equality) در آبجکتها و آرایهها
- 36. پیکربندی اسکریپتهای تست در `package.json`
- 37. تست کردن کلاسها و متدهای آنها
- 38. تست کردن سازنده (Constructor) کلاس
- 39. تست کردن Property های یک کلاس
- 40. کار با `this` در تستها و توابع Arrow
- 41. تست کردن وراثت و رفتار کلاسهای فرزند
- 42. تست کردن متدهای استاتیک
- 43. مفهوم مدیریت خطا در تست
- 44. تست کردن پرتاب خطا (Throwing Errors) با Chai
- 45. تست کردن انواع خاصی از خطاها
- 46. مقدمهای بر تست کدهای ناهمزمان (Asynchronous)
- 47. تست کدهای مبتنی بر Callback و پارامتر `done`
- 48. تست کدهای مبتنی بر Promise
- 49. استفاده از `chai-as-promised` برای تستهای خواناتر
- 50. تست کدهای ناهمزمان با استفاده از `async/await`
- 51. مدیریت خطاهای ناهمزمان در تستها
- 52. افزایش Timeout برای تستهای طولانی
- 53. مقدمهای بر Mocking، Stubbing و Spying
- 54. تفاوت بین Mock، Stub و Spy
- 55. معرفی کتابخانه Sinon.js
- 56. راهاندازی Sinon.js در پروژه تایپ اسکریپت
- 57. استفاده از Spy برای نظارت بر فراخوانی توابع
- 58. Assertion روی Spy ها: `calledOnce`, `calledWith`
- 59. استفاده از Stub برای جایگزینی رفتار یک تابع
- 60. کنترل خروجی یک تابع با Stub
- 61. بازگرداندن Promise های موفق یا ناموفق با Stub
- 62. استفاده از Mock برای انتظارات پیچیدهتر
- 63. بازیابی رفتار اصلی با `restore()`
- 64. مفهوم Sandbox در Sinon برای پاکسازی خودکار
- 65. تست ماژولها و وابستگیهای آنها
- 66. استفاده از `proxyquire` یا `ts-mock-imports` برای Mock کردن ماژولها
- 67. تست کدهایی که با فایل سیستم (File System) کار میکنند
- 68. تست کدهایی که درخواست شبکه (HTTP Request) ارسال میکنند
- 69. مقدمهای بر پوشش کد (Code Coverage)
- 70. چرا Code Coverage مهم است؟
- 71. راهاندازی `nyc` (Istanbul) برای پروژههای تایپ اسکریپت
- 72. تولید گزارشهای پوشش کد
- 73. تحلیل گزارش HTML پوشش کد
- 74. تعیین حد آستانه برای پوشش کد
- 75. گزارشدهندهها (Reporters) در Mocha
- 76. تغییر گزارشدهنده پیشفرض (`spec`, `dot`, `nyan`)
- 77. ایجاد گزارشهای قابل استفاده در CI/CD (مانند `mocha-junit-reporter`)
- 78. توسعه آزمون محور (Test-Driven Development - TDD) چیست؟
- 79. چرخه TDD: قرمز، سبز، بازنویسی (Red-Green-Refactor)
- 80. پیادهسازی یک قابلیت ساده با رویکرد TDD
- 81. توسعه رفتار محور (Behavior-Driven Development - BDD) چیست؟
- 82. تفاوتهای TDD و BDD در عمل
- 83. نوشتن تستهای BDD-Style با Mocha و Chai
- 84. بهترین شیوهها برای نامگذاری تستها
- 85. الگوی Arrange-Act-Assert (AAA) در نوشتن تستها
- 86. چگونه تستهای خوانا و قابل نگهداری بنویسیم
- 87. ساختار بهینه پوشهها برای فایلهای تست
- 88. جدا کردن تستهای واحد از تستهای یکپارچهسازی
- 89. مفهوم تستهای یکپارچهسازی (Integration Tests)
- 90. نوشتن یک تست یکپارچهسازی ساده با Mocha
- 91. تست تعامل بین چند کلاس یا ماژول
- 92. تست کردن API Endpoint ها با `supertest`
- 93. راهاندازی `supertest` و `chai-http`
- 94. ارسال درخواست GET و تست کردن پاسخ
- 95. ارسال درخواست POST با بدنه (Body) و تست کردن آن
- 96. تست کردن کدهای وضعیت (Status Codes) و هدرها (Headers)
- 97. ادغام تستها با پایپلاین CI/CD
- 98. ایجاد یک فایل کانفیگ ساده برای GitHub Actions
- 99. اجرای خودکار تستها در هر Push
- 100. عیبیابی تستهای ناموفق در محیط CI
محتویات بسته آموزشی
🌐 سامانه آنلاین فلشکارت؛ مرور هدفمند و هوشمند
اکانت ارائهشده، دسترسی به نسخه تحت وب سامانه فلشکارت ویژه این دوره را فراهم میکند. این سامانه از الگوریتم زمانبندی مرور SM-2 استفاده میکند و بر اساس ارزیابی شما از میزان یادآوری هر کارت، زمان مرورهای بعدی را تنظیم میکند.
به این ترتیب، کارتهای دشوارتر میتوانند زودتر مرور شوند و برای تثبیت مطالب در حافظه، برنامه مرور متناسبتری داشته باشید.
مدتزمان معادل آموزشی بر اساس برآورد این دوره در گواهی درج میشود.
گواهی دوزبانه با استعلام آنلاین
پس از تکمیل فعالیتهای لازم و تأیید درخواست، گواهی پایان دوره به زبان فارسی و انگلیسی صادر میشود. گواهی دارای لینک اختصاصی و QR Code برای بررسی و استعلام آنلاین است.
این گواهی صرفاً بهعنوان گواهی اتمام دوره آموزشی صادر میشود و معادل مدرک دانشگاهی، آکادمیک یا مدرک رسمی مورد تأیید نهادهای دولتی نیست. صدور آن منوط به تکمیل شرایط دوره و تأیید نهایی درخواست است.
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.