اپلیکیشن اندرویدی فلشکارت آموزشی تکنیکهای Test Isolation for Independent and Repeatable Tests
🎓 دوره آموزشی جامع
📚 اطلاعات دوره
عنوان دوره: دوره تکنیکهای Test Isolation for Independent and Repeatable Tests
موضوع کلی: برنامه نویسی
موضوع میانی: تست فرانتاند
📋 سرفصلهای دوره
- 1. مقدمهای بر تست نرمافزار
- 2. چرا تستنویسی برای فرانتاند اهمیت دارد؟
- 3. هرم تست: Unit, Integration, End-to-End
- 4. مفهوم Test Isolation: چرا تستها باید مستقل باشند؟
- 5. مشکلات تستهای وابسته (Dependent Tests): شکنندگی و کندی
- 6. مزایای تستهای مستقل: تکرارپذیری و قابلیت اطمینان
- 7. آشنایی با محیطهای تست فرانتاند: Jest, Vitest, Cypress
- 8. معرفی Test Doubles: Mocks, Stubs, Spies, Fakes
- 9. تفاوت بین Mock, Stub و Spy
- 10. مقدمهای بر کتابخانه React Testing Library
- 11. فلسفه Testing Library: تست رفتار کاربر، نه جزئیات پیادهسازی
- 12. بخش دوم: جداسازی وابستگیهای شبکه (Network Dependencies)**
- 13. چرا باید درخواستهای شبکه را در تستها ایزوله کنیم؟
- 14. معرفی Mock Service Worker (MSW) برای جداسازی کامل API
- 15. راهاندازی MSW در محیط تست
- 16. نوشتن اولین تست با Mock کردن یک درخواست GET
- 17. Mock کردن درخواستهای POST, PUT, DELETE
- 18. شبیهسازی سناریوهای خطا: کدهای 4xx و 5xx
- 19. مدیریت وضعیتهای Loading در کامپوننتها با Mocking
- 20. تست کامپوننتهایی که چندین درخواست API ارسال میکنند
- 21. جداسازی تستهای WebSocket
- 22. استفاده از Cypress Intercept برای Mock کردن API در تستهای E2E
- 23. بخش سوم: جداسازی وابستگیهای ماژول و توابع (Module & Function Dependencies)**
- 24. مفهوم Mock کردن ماژولها در Jest/Vitest
- 25. استفاده از `jest.mock` برای جایگزینی یک ماژول
- 26. استفاده از `jest.spyOn` برای نظارت بر فراخوانی توابع
- 27. تفاوت بین Mock کردن کامل و Spy کردن
- 28. جایگزینی پیادهسازی یک تابع (Stubbing)
- 29. Mock کردن Exportهای Default و Named
- 30. چالشهای Mock کردن ماژولهای ES Modules
- 31. Mock کردن کتابخانههای थर्ड-Party (مانند date-fns, lodash)
- 32. چرا و چگونه کتابخانههای Analytics را Mock کنیم؟
- 33. جداسازی کامپوننتها از کتابخانههای UI خارجی
- 34. بخش چهارم: جداسازی وابستگیهای محیطی و سراسری (Global & Environmental Dependencies)**
- 35. چالشهای تست کدی که به `window` یا `document` وابسته است
- 36. Mock کردن `localStorage` و `sessionStorage`
- 37. کنترل زمان در تستها: `setTimeout` و `setInterval`
- 38. استفاده از Fake Timers در Jest/Vitest
- 39. Mock کردن `Date` برای تستهای وابسته به زمان
- 40. جداسازی تستها از متغیرهای محیطی (Environment Variables)
- 41. Mock کردن APIهای مرورگر مانند Geolocation یا Fetch
- 42. تست کدهای وابسته به ابعاد صفحه (Screen Size)
- 43. مدیریت `matchMedia` در تستهای کامپوننتهای Responsive
- 44. بخش پنجم: جداسازی وضعیت و داده (State & Data Isolation)**
- 45. اهمیت ایزوله بودن State بین تستها
- 46. الگوی Arrange-Act-Assert (AAA) برای ساختاردهی تستها
- 47. استفاده از `beforeEach` و `afterEach` برای پاکسازی وضعیت
- 48. تست کامپوننتها با Propsهای مختلف
- 49. Mock کردن Context Provider در React
- 50. چگونه هوکهای سفارشی (Custom Hooks) را به صورت ایزوله تست کنیم؟
- 51. تست کامپوننتهای وابسته به React Router
- 52. Mock کردن کتابخانههای مدیریت وضعیت (State Management) مانند Redux یا Zustand
- 53. تست ایزوله Selectors و Actions در Redux
- 54. ایجاد دادههای Mock با استفاده از Factory Pattern
- 55. بخش ششم: پیادهسازی عملی با React Testing Library**
- 56. راهاندازی پروژه نمونه با Create React App و Testing Library
- 57. نوشتن اولین تست برای یک کامپوننت ساده
- 58. آشنایی با کوئریهای `getBy`, `findBy`, `queryBy`
- 59. انتخاب بهترین کوئری برای تستهای مقاوم
- 60. شبیهسازی تعاملات کاربر با `user-event`
- 61. تست یک فرم ساده: ورود متن و کلیک دکمه
- 62. تست اعتبارسنجی (Validation) فرم به صورت ایزوله
- 63. تست کامپوننتی که داده از API میخواند (با MSW)
- 64. تست نمایش پیامهای خطا و موفقیت
- 65. تست ناوبری (Navigation) در برنامه با Mock کردن Router
- 66. بخش هفتم: تکنیکهای پیشرفته Mocking**
- 67. پیادهسازی Mock به صورت دستی (Manual Mocks)
- 68. استفاده از Module Factory برای ساخت Mockهای پیچیده
- 69. Mock کردن بخشی از یک ماژول (Partial Mocking)
- 70. نگهداری و مدیریت Mockها در پروژههای بزرگ
- 71. Snapshot Testing: مزایا، معایب و کاربرد در تستهای ایزوله
- 72. تست کامپوننتهای Higher-Order (HOCs)
- 73. تست Render Props به صورت ایزوله
- 74. مبارزه با Over-Mocking: چه زمانی Mock نکنیم؟
- 75. تست کدهای Asynchronous غیر از درخواستهای شبکه
- 76. استراتژیهای تست برای Micro-Frontends
- 77. بخش هشتم: تستهای End-to-End ایزوله با Cypress**
- 78. مقدمهای بر جداسازی در تستهای E2E
- 79. راهاندازی Cypress و اولین تست
- 80. استفاده از `cy.intercept()` برای کنترل کامل شبکه
- 81. Stub کردن پاسخهای API در سناریوهای مختلف
- 82. استفاده از Fixtures برای مدیریت دادههای Mock
- 83. کنترل وضعیت برنامه از طریق `cy.window()`
- 84. جداسازی تستها با لاگین برنامهریزیشده (Programmatic Login)
- 85. استفاده از Custom Commands برای تکرارپذیری Setup
- 86. تست بصری (Visual Regression Testing) در محیط ایزوله
- 87. ایزوله کردن تستها از سرویسهای थर्ड-Party مانند درگاه پرداخت
- 88. بخش نهم: بهترین شیوهها و الگوها (Best Practices & Patterns)**
- 89. نامگذاری خوانا و معنادار برای تستها
- 90. ساختاردهی فایلهای تست در پروژه
- 91. استفاده از Faker.js برای تولید دادههای Mock واقعگرایانه
- 92. الگوی ضد-تست (Anti-Pattern): تست جزئیات پیادهسازی
- 93. الگوی ضد-تست: انتخابگرهای (Selectors) شکننده
- 94. تست دسترسپذیری (Accessibility - a11y) در کامپوننتهای ایزوله
- 95. نوشتن تست برای مدیریت خطاهای غیرمنتظره
- 96. Refactoring کد تست: چگونه تستهای تمیز بنویسیم؟
- 97. اندازهگیری پوشش کد (Code Coverage) و درک محدودیتهای آن
- 98. دیباگ کردن تستهای ناموفق: ابزارها و تکنیکها
- 99. بخش دهم: جمعبندی و مراحل بعدی**
- 100. مرور اصول کلیدی تستهای مستقل و تکرارپذیر
این اپلیکیشن فارسی برای یادگیری و مرور محتوای آموزشی از طریق فلشکارت طراحی شده است. کارتها را یکییکی مرور کنید، پاسخ پرسشها را به یاد بیاورید و نتیجه هر پاسخ را ثبت کنید. محتوای دوره پس از نصب درون برنامه در دسترس است تا برای مطالعه روزمره معمولاً به اتصال مداوم اینترنت نیاز نداشته باشید.
محتوای آموزشی در قالبهای متنوع ارائه میشود تا هم برای یادگیری مفاهیم جدید و هم برای تثبیت آموختهها قابل استفاده باشد.
- رابط کاربری فارسی و راستچین با فونت وزیر.
- تم روشن و تیره مطابق تنظیمات سیستم.
- صفحهبندی ساده برای انتخاب دوره و شروع مرور.
- نمایش تعداد دفعات مرور هر فصل.
- انتخاب چند فصل برای مرور همزمان.
- امکان تمرکز بر فصلهایی که هنوز مرور نشدهاند.
این اپلیکیشن برای دانشآموزان، دانشجویان، داوطلبان آزمونها و علاقهمندان به یادگیری طراحی شده است؛ بهویژه کسانی که میخواهند مطالب آموزشی را در زمانهای کوتاه مرور کنند، دانستههای خود را بسنجند و مطالعه منظمتری داشته باشند.
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.