فلشکارتهای آموزشی تکنیکهای Test Isolation for Independent and Repeatable Tests
📚 کتاب آموزشی جامع
📚 اطلاعات کتاب
عنوان کتاب: کتاب تکنیکهای Test Isolation for Independent and Repeatable Tests
موضوع کلی: برنامه نویسی
موضوع میانی: تست فرانتاند
📋 سرفصلهای کتاب (100 موضوع)
- 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. مرور اصول کلیدی تستهای مستقل و تکرارپذیر
SMART LEARNING PLATFORM
از مطالعه تا یادگیری ماندگار
فراتر از یک مجموعه فلشکارت؛ تجربهای تعاملی برای یادگیری، تمرین، مرور هوشمند و مشاهده مسیر پیشرفت شما، همراه با امکان دریافت گواهی پایان دوره در دورههای واجد شرایط.
مرور فاصلهدار
آمار یادگیری
گواهی دوزبانه
یادگیری را به یک مسیر قابل پیگیری تبدیل کنید
با ورود به سامانه آموزشی، محتوای دوره را بهصورت مرحلهای دنبال کنید، فلشکارتها را مرور کنید، دانش خود را با پرسشها و آزمونها بسنجید و روند پیشرفتتان را در طول مسیر ببینید.
⟳
مرور فاصلهدار هوشمند
با مرور زماندار، کارتهای تازه و کارتهای سررسیدشده را بر اساس برنامه مرور دنبال کنید. ارزیابی پاسخها به زمانبندی مرورهای بعدی کمک میکند تا تمرین متناسبتری داشته باشید.
◉
مشاهده مسیر پیشرفت
میزان مشاهده فلشکارتها، فعالیتهای مرور، عملکرد آزمونها و آمار یادگیری را بررسی کنید و تصویر روشنتری از مسیر آموزشی خود داشته باشید.
▤
یادگیری مرحلهبهمرحله
فصلها و بخشهای آموزشی را به ترتیب دنبال کنید، مطالب دیدهنشده را پیدا کنید و بدون سردرگمی به ادامه مسیر برگردید.
✓
تمرین و سنجش آموختهها
با نکتههای آموزشی، پرسش و پاسخ، کوییزها و آزمونهای پایان فصل، دانستههای خود را تمرین کنید و بخشهایی را که به توجه بیشتری نیاز دارند بشناسید.
SMART REVIEW
هر بار، مرور هدفمندتر
لازم نیست هر روز از ابتدا درباره اینکه چه چیزی را مرور کنید تصمیم بگیرید. سامانه، صف مرور روزانه را بر اساس کارتهای تازه و موعد مرور کارتها آماده میکند. شما پاسخ را ارزیابی میکنید و برنامه مرور با توجه به آن تنظیم میشود.
دوباره
برای کارتهایی که به تمرین زودتر نیاز دارند.
سخت
برای پاسخهایی که با دشواری به یاد آمدهاند.
خوب
برای پاسخهایی که بهدرستی به یاد آوردهاید.
آسان
برای کارتهایی که پاسخ آنها را بهآسانی میدانید.
برنامه مرور بر اساس ارزیابی شما تنظیم میشود؛ مرور منظم میتواند به تثبیت آموختهها کمک کند، اما بهتنهایی تضمینکننده تسلط کامل نیست.
محتوا را به شیوههای مختلف تمرین کنید
ساختار دورهها متناسب با موضوع آموزشی طراحی شده است و ممکن است انواع مختلفی از محتوا را در بر بگیرد.
نکتههای ساده
برای مرور سریع مفاهیم اصلی و نکات کلیدی.
نکتههای رسمی
برای تمرین تعاریف، اصطلاحات و بیان دقیق علمی.
کوییز
برای سنجش درک مطلب و بررسی گزینه صحیح.
پرسش و پاسخ
برای تمرین یادآوری و سنجش میزان تسلط بر مطالب.
محتوای هر دوره بر اساس ساختار و امکانات فعال همان دوره ارائه میشود.
LEARN ANYWHERE
همراه شما روی مرورگر
برای استفاده از نسخه تحت وب، کافی است با حساب کاربری خود وارد سامانه شوید. بدون نیاز به نصب یک برنامه اختصاصی، میتوانید از مرورگر سازگار روی گوشی، تبلت یا رایانه به دورههای در دسترس خود مراجعه کنید.
گوشی هوشمند
برای مطالعه در زمانهای کوتاه
تبلت و لپتاپ
برای مطالعه و مرور راحتتر
حساب کاربری شخصی
برای دسترسی به دورههای مجاز شما
COURSE COMPLETION CERTIFICATE
گواهی پایان دوره؛ ثبت دستاورد شما
در دورههایی که امکان دریافت گواهی برای آنها فعال است، میتوانید پس از تکمیل شرایط آموزشی، درخواست گواهی پایان دوره ثبت کنید.
شرایط درخواست گواهی
✓ داشتن دسترسی دارای قابلیت گواهی برای دوره مربوطه.
✓ تکمیل اطلاعات لازم در پروفایل، شامل کد ملی معتبر، عکس پرسنلی و نام و نام خانوادگی انگلیسی.
✓ مشاهده تمام فلشکارتهای فعال دوره.
✓ قبولی در آزمونهای پایان فصل، در صورت وجود آزمون برای فصلها.
فارسی و انگلیسی
پس از تأیید و انتشار، نسخههای فارسی و انگلیسی گواهی در دسترس قرار میگیرند.
استعلام آنلاین
گواهی منتشرشده دارای QR Code و لینک اختصاصی برای بررسی آنلاین اعتبار آن است.
دانلود و چاپ
پس از انتشار گواهی، امکان دریافت نسخه PDF فارسی و انگلیسی و چاپ آن فراهم است.
توجه: ثبت درخواست به معنای صدور قطعی نیست. درخواست گواهی پس از بررسی و تأیید ادمین منتشر میشود. این گواهی، گواهی پایان دوره آموزشی است و بهخودیخود معادل مدرک دانشگاهی یا مدرک رسمی مورد تأیید نهادهای دولتی نیست.
یادگیری را شروع کنید؛ پیشرفت را دنبال کنید
با تمرین منظم، مرور هدفمند و پیگیری مسیر آموزشی خود، قدمبهقدم دانش و مهارتهایتان را گسترش دهید.
هر کارت، یک قدم به جلو
امکانات محتوایی، مرور و گواهی بر اساس سطح دسترسی و تنظیمات هر دوره متفاوت است.
نگاهی به محیط سامانه
یادگیری هوشمند، قدمبهقدم
با محیط سامانه آموزشی آشنا شوید و نمونههایی از فضای یادگیری، فلشکارتها و ابزارهای مرور و تمرین را مشاهده کنید.
محیط سامانه آموزشی
برای مشاهده تصویر در اندازه بزرگتر کلیک کنید
یادگیری و مرور مطالب
برای مشاهده تصویر در اندازه بزرگتر کلیک کنید
تجربه مطالعه تعاملی
برای مشاهده تصویر در اندازه بزرگتر کلیک کنید
امکانات بیشتر سامانه
برای مشاهده تصویر در اندازه بزرگتر کلیک کنید
یادگیری فراتر از مطالعه معمولی
با فلشکارتهای آموزشی، مرور هدفمند و تمرین مستمر، مطالب را فعالانه یاد بگیرید و مسیر پیشرفت خود را دنبال کنید.
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.