فلشکارتهای آموزشی Typescript: تست نویسی Test-Driven Development (TDD)
TypeScript: آموزش تستنویسی TDD | ارتقای مهارت برنامهنویسی شما TypeScript: آموزش تستنویسی TDD - تضمین کیفیت کد و ارتقای مهارت برنامهنویسی معرفی دوره آیا میخواهید کدهایی بنویسید که نه تنها کار میک...
🎓 دوره آموزشی جامع
📚 اطلاعات دوره
عنوان دوره: دوره Typescript: تست نویسی Test-Driven Development (TDD)
موضوع کلی: برنامه نویسی
موضوع میانی: تایپ اسکریپت (TypeScript)
📋 سرفصلهای دوره
- 1. مقدمهای بر Test-Driven Development (TDD)
- 2. چرا TDD؟ مزایا و فلسفه آن
- 3. مقایسه TDD با رویکردهای سنتی تستنویسی
- 4. آشنایی با چرخه TDD: قرمز-سبز-بازآفرینی (Red-Green-Refactor)
- 5. راهاندازی محیط توسعه: Node.js, npm/yarn
- 6. ایجاد یک پروژه جدید تایپاسکریپت (tsconfig.json)
- 7. نصب و پیکربندی Jest به عنوان فریمورک تست
- 8. ادغام Jest با تایپاسکریپت با استفاده از ts-jest
- 9. ساختار پوشهبندی پروژه برای تستها (src و test)
- 10. نوشتن اولین فایل تست: anatomy of a .test.ts file
- 11. اجرای اولین تست (که هنوز خالی است)
- 12. آشنایی با بلوکهای describe و it (یا test)
- 13. مفهوم Assertion و تابع expect در Jest
- 14. اولین چرخه کامل TDD: نوشتن یک تست ناموفق (Red)
- 15. معرفی Matcherها: `toBe` برای مقادیر اولیه
- 16. نوشتن حداقل کد برای پاس شدن تست (Green)
- 17. مفهوم بازآفرینی کد (Refactor) و اهمیت آن
- 18. بازآفرینی کد تابع و تست بدون تغییر در رفتار
- 19. مقایسه `toBe` و `toEqual` برای اشیاء و آرایهها
- 20. تست کردن مقادیر Truthiness و Falsiness
- 21. تست کردن اعداد: `toBeGreaterThan`, `toBeLessThan`
- 22. تست کردن رشتهها با عبارات باقاعده (Regex)
- 23. تست کردن آرایهها و مقادیر موجود در آنها (`toContain`)
- 24. گروهبندی تستهای مرتبط با `describe`
- 25. اجرای کدهای آمادهسازی قبل و بعد از هر تست (`beforeEach`, `afterEach`)
- 26. اجرای کدهای آمادهسازی یکبار برای کل مجموعه تست (`beforeAll`, `afterAll`)
- 27. TDD برای توابع Pure: مثالهای عملی
- 28. تست توابع با ورودیها و خروجیهای مختلف (اعداد، رشتهها، بولینها)
- 29. TDD برای کار با اشیاء (Objects) در تایپاسکریپت
- 30. TDD برای کار با آرایهها (Arrays) و متدهای آن
- 31. استفاده از اینترفیسها (Interfaces) و تایپها (Types) در تستها
- 32. تست کردن Union Types و Optional Parameters
- 33. مدیریت و تست خطاها (Errors) با `toThrow`
- 34. تست کردن پیامهای خطای خاص
- 35. مقدمهای بر کد ناهمگام (Asynchronous) در تایپاسکریپت
- 36. تست کردن Promiseها
- 37. استفاده از `async/await` در تستها برای خوانایی بهتر
- 38. تست کدهای `async` که با موفقیت `resolve` میشوند
- 39. تست کدهای `async` که با خطا `reject` میشوند
- 40. مدیریت Timeout در تستهای ناهمگام
- 41. مفهوم وابستگیها (Dependencies) و اثرات جانبی (Side Effects)
- 42. چرا به Mocking نیاز داریم؟ ایزوله کردن واحد تحت تست
- 43. آشنایی با Mock Functions در Jest (`jest.fn`)
- 44. تست کردن تعداد دفعات فراخوانی یک Mock (`toHaveBeenCalledTimes`)
- 45. تست کردن آرگومانهای پاس داده شده به یک Mock (`toHaveBeenCalledWith`)
- 46. شبیهسازی مقادیر بازگشتی با `mockReturnValue`
- 47. شبیهسازی Promiseهای موفق با `mockResolvedValue`
- 48. شبیهسازی Promiseهای ناموفق با `mockRejectedValue`
- 49. مقدمهای بر Mocking Modules با `jest.mock`
- 50. Mock کردن ماژولهای داخلی پروژه
- 51. Mock کردن کتابخانههای خارجی (third-party libraries)
- 52. مفهوم جاسوسی (Spying) با `jest.spyOn`
- 53. کاربرد `spyOn` برای نظارت بر متدهای یک شیء بدون تغییر رفتار آن
- 54. بازگرداندن پیادهسازی اصلی با `mockRestore`
- 55. TDD برای کلاسها (Classes) در تایپاسکریپت
- 56. تست کردن Constructor و Propertyهای یک کلاس
- 57. تست کردن متدهای Public یک کلاس
- 58. بحثی در مورد تست متدهای Private
- 59. Mock کردن وابستگیهای یک کلاس در Constructor
- 60. تفاوت بین Mock, Stub و Spy
- 61. TDD با تایپهای ژنریک (Generics)
- 62. تست یک تابع ژنریک
- 63. تست یک کلاس ژنریک (مانند Stack یا Queue)
- 64. معرفی Snapshot Testing: چیستی و کاربردها
- 65. نوشتن و اجرای اولین Snapshot Test
- 66. استراتژیهای بهروزرسانی Snapshotها
- 67. چه زمانی از Snapshot Testing استفاده کنیم (و نکنیم)
- 68. تست کردن Type Guards سفارشی در تایپاسکریپت
- 69. معرفی مفهوم Code Coverage
- 70. تولید و تحلیل گزارش Code Coverage
- 71. معنای معیارهای پوشش کد: Statement, Branch, Function, Line
- 72. افسانه پوشش کد ۱۰۰٪: اهداف واقعگرایانه
- 73. تستهای پارامتری (Parametrized Tests) با `test.each`
- 74. TDD برای توسعه یک ماژول کاربردی (Utility Module)
- 75. الگوی Arrange-Act-Assert (AAA) برای ساختاردهی تستها
- 76. نوشتن نامهای گویا و توصیفی برای تستها
- 77. TDD در یک سناریو واقعی: ساخت یک اعتبارسنج (Validator)
- 78. مقدمهای بر تست لایههای مختلف یک اپلیکیشن (Controller, Service, Repository)
- 79. TDD برای لایه سرویس (Service Layer)
- 80. مفهوم Inversion of Control و Dependency Injection در تست
- 81. Mock کردن لایه Repository برای تست واحد لایه Service
- 82. تفاوت تست واحد (Unit), یکپارچهسازی (Integration) و End-to-End (E2E)
- 83. نوشتن یک تست یکپارچهسازی ساده
- 84. معرفی Property-Based Testing
- 85. نوشتن یک Matcher سفارشی ساده با `expect.extend`
- 86. TDD برای کار با تاریخ و زمان (Mocking `Date`)
- 87. TDD برای توابعی که با فایل سیستم کار میکنند
- 88. الگوهای طراحی (Design Patterns) مناسب برای کد قابل تست
- 89. بازآفرینی به سمت کد تمیز (Clean Code)
- 90. بازآفرینی تستها: چگونه تستهای بهتری بنویسیم
- 91. اشتباهات رایج در تستنویسی و نحوه اجتناب از آنها
- 92. اجتناب از منطق (if/else, loops) در تستها
- 93. حفظ استقلال و ایزوله بودن تستها از یکدیگر
- 94. سریع نگه داشتن مجموعه تستها
- 95. دیباگ کردن تستها در VS Code و ابزارهای دیگر
- 96. استفاده از Watch Mode برای افزایش سرعت چرخه TDD
- 97. اجرای تنها یک تست یا یک مجموعه تست خاص
- 98. ادغام تستها با Git Hooks (Husky & lint-staged)
- 99. مقدمهای بر Continuous Integration (CI)
- 100. راهاندازی یک پایپلاین CI ساده با GitHub Actions برای اجرای خودکار تستها
SMART LEARNING PLATFORM
از مطالعه تا یادگیری ماندگار
فراتر از یک مجموعه فلشکارت؛ تجربهای تعاملی برای یادگیری، تمرین، مرور هوشمند و مشاهده مسیر پیشرفت شما، همراه با امکان دریافت گواهی پایان دوره در دورههای واجد شرایط.
مرور فاصلهدار
آمار یادگیری
گواهی دوزبانه
یادگیری را به یک مسیر قابل پیگیری تبدیل کنید
با ورود به سامانه آموزشی، محتوای دوره را بهصورت مرحلهای دنبال کنید، فلشکارتها را مرور کنید، دانش خود را با پرسشها و آزمونها بسنجید و روند پیشرفتتان را در طول مسیر ببینید.
⟳
مرور فاصلهدار هوشمند
با مرور زماندار، کارتهای تازه و کارتهای سررسیدشده را بر اساس برنامه مرور دنبال کنید. ارزیابی پاسخها به زمانبندی مرورهای بعدی کمک میکند تا تمرین متناسبتری داشته باشید.
◉
مشاهده مسیر پیشرفت
میزان مشاهده فلشکارتها، فعالیتهای مرور، عملکرد آزمونها و آمار یادگیری را بررسی کنید و تصویر روشنتری از مسیر آموزشی خود داشته باشید.
▤
یادگیری مرحلهبهمرحله
فصلها و بخشهای آموزشی را به ترتیب دنبال کنید، مطالب دیدهنشده را پیدا کنید و بدون سردرگمی به ادامه مسیر برگردید.
✓
تمرین و سنجش آموختهها
با نکتههای آموزشی، پرسش و پاسخ، کوییزها و آزمونهای پایان فصل، دانستههای خود را تمرین کنید و بخشهایی را که به توجه بیشتری نیاز دارند بشناسید.
SMART REVIEW
هر بار، مرور هدفمندتر
لازم نیست هر روز از ابتدا درباره اینکه چه چیزی را مرور کنید تصمیم بگیرید. سامانه، صف مرور روزانه را بر اساس کارتهای تازه و موعد مرور کارتها آماده میکند. شما پاسخ را ارزیابی میکنید و برنامه مرور با توجه به آن تنظیم میشود.
دوباره
برای کارتهایی که به تمرین زودتر نیاز دارند.
سخت
برای پاسخهایی که با دشواری به یاد آمدهاند.
خوب
برای پاسخهایی که بهدرستی به یاد آوردهاید.
آسان
برای کارتهایی که پاسخ آنها را بهآسانی میدانید.
برنامه مرور بر اساس ارزیابی شما تنظیم میشود؛ مرور منظم میتواند به تثبیت آموختهها کمک کند، اما بهتنهایی تضمینکننده تسلط کامل نیست.
محتوا را به شیوههای مختلف تمرین کنید
ساختار دورهها متناسب با موضوع آموزشی طراحی شده است و ممکن است انواع مختلفی از محتوا را در بر بگیرد.
نکتههای ساده
برای مرور سریع مفاهیم اصلی و نکات کلیدی.
نکتههای رسمی
برای تمرین تعاریف، اصطلاحات و بیان دقیق علمی.
کوییز
برای سنجش درک مطلب و بررسی گزینه صحیح.
پرسش و پاسخ
برای تمرین یادآوری و سنجش میزان تسلط بر مطالب.
محتوای هر دوره بر اساس ساختار و امکانات فعال همان دوره ارائه میشود.
LEARN ANYWHERE
همراه شما روی مرورگر
برای استفاده از نسخه تحت وب، کافی است با حساب کاربری خود وارد سامانه شوید. بدون نیاز به نصب یک برنامه اختصاصی، میتوانید از مرورگر سازگار روی گوشی، تبلت یا رایانه به دورههای در دسترس خود مراجعه کنید.
گوشی هوشمند
برای مطالعه در زمانهای کوتاه
تبلت و لپتاپ
برای مطالعه و مرور راحتتر
حساب کاربری شخصی
برای دسترسی به دورههای مجاز شما
COURSE COMPLETION CERTIFICATE
گواهی پایان دوره؛ ثبت دستاورد شما
در دورههایی که امکان دریافت گواهی برای آنها فعال است، میتوانید پس از تکمیل شرایط آموزشی، درخواست گواهی پایان دوره ثبت کنید.
شرایط درخواست گواهی
✓ داشتن دسترسی دارای قابلیت گواهی برای دوره مربوطه.
✓ تکمیل اطلاعات لازم در پروفایل، شامل کد ملی معتبر، عکس پرسنلی و نام و نام خانوادگی انگلیسی.
✓ مشاهده تمام فلشکارتهای فعال دوره.
✓ قبولی در آزمونهای پایان فصل، در صورت وجود آزمون برای فصلها.
فارسی و انگلیسی
پس از تأیید و انتشار، نسخههای فارسی و انگلیسی گواهی در دسترس قرار میگیرند.
استعلام آنلاین
گواهی منتشرشده دارای QR Code و لینک اختصاصی برای بررسی آنلاین اعتبار آن است.
دانلود و چاپ
پس از انتشار گواهی، امکان دریافت نسخه PDF فارسی و انگلیسی و چاپ آن فراهم است.
توجه: ثبت درخواست به معنای صدور قطعی نیست. درخواست گواهی پس از بررسی و تأیید ادمین منتشر میشود. این گواهی، گواهی پایان دوره آموزشی است و بهخودیخود معادل مدرک دانشگاهی یا مدرک رسمی مورد تأیید نهادهای دولتی نیست.
یادگیری را شروع کنید؛ پیشرفت را دنبال کنید
با تمرین منظم، مرور هدفمند و پیگیری مسیر آموزشی خود، قدمبهقدم دانش و مهارتهایتان را گسترش دهید.
هر کارت، یک قدم به جلو
امکانات محتوایی، مرور و گواهی بر اساس سطح دسترسی و تنظیمات هر دوره متفاوت است.
نگاهی به محیط سامانه
یادگیری هوشمند، قدمبهقدم
با محیط سامانه آموزشی آشنا شوید و نمونههایی از فضای یادگیری، فلشکارتها و ابزارهای مرور و تمرین را مشاهده کنید.
محیط سامانه آموزشی
برای مشاهده تصویر در اندازه بزرگتر کلیک کنید
یادگیری و مرور مطالب
برای مشاهده تصویر در اندازه بزرگتر کلیک کنید
تجربه مطالعه تعاملی
برای مشاهده تصویر در اندازه بزرگتر کلیک کنید
امکانات بیشتر سامانه
برای مشاهده تصویر در اندازه بزرگتر کلیک کنید
یادگیری فراتر از مطالعه معمولی
با فلشکارتهای آموزشی، مرور هدفمند و تمرین مستمر، مطالب را فعالانه یاد بگیرید و مسیر پیشرفت خود را دنبال کنید.
تگها:
JavaScript
Programming
TDD
Test-Driven Development
TypeScript
آموزش TypeScript
برنامه نویسی
بهترین روش های برنامه نویسی
تایپ اسکریپت
تست نویسی
توسعه دهنده
توسعه نرم افزار
کدنویسی
کیفیت کد
یادگیری TypeScript
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.