دوره تست اپلیکیشنهای تکصفحهای (SPAs) همراه با فلشکارت آموزشی — ارائه روی فلش مموری
📚 کتاب آموزشی جامع
📚 اطلاعات کتاب
عنوان کتاب: کتاب تست اپلیکیشنهای تکصفحهای (SPAs)
موضوع کلی: برنامه نویسی
موضوع میانی: تست فرانتاند
📋 سرفصلهای کتاب (100 موضوع)
- 1. مقدمهای بر تست نرمافزار و اهمیت آن در فرانتاند
- 2. آشنایی با اپلیکیشنهای تکصفحهای (SPAs) و معماری آنها
- 3. چالشهای خاص تست SPAs: مسیریابی، مدیریت state، رندرینگ ناهمگام
- 4. معرفی هرم تست (Testing Pyramid) و کاربرد آن در فرانتاند
- 5. تفاوت تست دستی و تست خودکار
- 6. مفاهیم پایه: Assertion, Mocking, Stubbing, Spying
- 7. انواع تست: Black Box, White Box, Gray Box
- 8. راهاندازی محیط توسعه برای تست (Node.js, npm/yarn)
- 9. معرفی ابزارهای کلیدی: Jest, React Testing Library, Cypress
- 10. مقدمهای بر تست واحد (Unit Testing)
- 11. معرفی Jest به عنوان Test Runner
- 12. نصب و پیکربندی اولیه Jest
- 13. ساختار یک فایل تست: `describe`, `it`, `test`
- 14. نوشتن اولین تست واحد برای یک تابع خالص (Pure Function)
- 15. آشنایی با Matchers در Jest (`toBe`, `toEqual`, `toBeTruthy`)
- 16. Matchers پیشرفتهتر (`toContain`, `toMatchObject`, `toThrow`)
- 17. تست کدهای ناهمگام (Asynchronous): Promises و async/await
- 18. استفاده از هوکهای کمکی: `beforeEach`, `afterEach`, `beforeAll`, `afterAll`
- 19. مفهوم Mocking و چرایی استفاده از آن
- 20. Mock کردن توابع و ماژولها با `jest.fn()` و `jest.spyOn()`
- 21. تایمرهای Mock با Jest (`useFakeTimers`)
- 22. معرفی React Testing Library (RTL) و فلسفه آن
- 23. رندر کردن کامپوننتها با `render`
- 24. آشنایی با کوئریهای RTL: `getBy`, `queryBy`, `findBy`
- 25. اولویتبندی کوئریها: `getByRole`, `getByLabelText`, `getByText`
- 26. شبیهسازی رویدادهای کاربر با `fireEvent`
- 27. استفاده از `user-event` برای شبیهسازی تعاملات واقعیتر
- 28. تست کامپوننتهای نمایشی (Presentational Components)
- 29. تست state و props در کامپوننتها
- 30. کار با `waitFor` برای مدیریت رندرینگ ناهمگام
- 31. تست نمایش شرطی (Conditional Rendering)
- 32. تست لیستها و رندر کردن آیتمها
- 33. تست هوکهای سفارشی (Custom Hooks)
- 34. Mock کردن Context API برای تست کامپوننتهای وابسته
- 35. تست کامپوننتهای فرم و ورودیهای کاربر
- 36. تست اعتبارسنجی فرم (Form Validation)
- 37. مفهوم Snapshot Testing: چیستی و کاربرد
- 38. ایجاد، بهروزرسانی و مدیریت Snapshot ها
- 39. مزایا و معایب Snapshot Testing
- 40. Mock کردن درخواستهای شبکه (API Calls) با `jest.mock`
- 41. استفاده از کتابخانه Mock Service Worker (MSW) برای Mock کردن API
- 42. مقدمهای بر تست یکپارچهسازی (Integration Testing)
- 43. تفاوت تست واحد و یکپارچهسازی در عمل
- 44. تست تعامل بین چند کامپوننت والد و فرزند
- 45. تست یکپارچگی با کتابخانههای مدیریت state (مانند Redux یا Zustand)
- 46. نوشتن تست برای Redux Actions و Reducers
- 47. تست کامپوننتهای متصل به Redux Store
- 48. Mock کردن Redux Store برای تستهای یکپارچهسازی
- 49. تست سیستم مسیریابی (Routing) در SPA
- 50. تست Navigation و Redirects
- 51. تست Protected Routes و احراز هویت
- 52. پوشش کد (Code Coverage) چیست و چرا مهم است؟
- 53. تولید و تحلیل گزارش Code Coverage با Jest
- 54. بهترین شیوهها برای نوشتن تستهای واحد و یکپارچهسازی
- 55. مقدمهای بر تست سرتاسری (End-to-End Testing)
- 56. معرفی Cypress به عنوان ابزار E2E
- 57. نصب و راهاندازی اولین پروژه Cypress
- 58. آشنایی با Cypress Test Runner و رابط کاربری آن
- 59. نوشتن اولین تست E2E: بازدید از صفحه و بررسی عنوان
- 60. انتخاب المانها در Cypress: `cy.get`, `cy.contains`
- 61. تعامل با المانها: `click()`, `type()`, `select()`
- 62. Assertion ها در Cypress با `should` و `and`
- 63. مدیریت انتظار (Waits) در Cypress: Automatic Waiting
- 64. تست سناریوهای کاربر پیچیده (User Flows)
- 65. تست کامل فرآیند ثبتنام و ورود کاربر
- 66. استفاده از Fixtures برای مدیریت دادههای تست
- 67. Mock کردن درخواستهای شبکه با `cy.intercept()`
- 68. استفاده از Custom Commands برای ایجاد دستورات قابل استفاده مجدد
- 69. کار با متغیرهای محیطی (Environment Variables)
- 70. اجرای تستها در مرورگرهای مختلف
- 71. اجرای تستهای E2E به صورت Headless
- 72. عیبیابی (Debugging) تستها در Cypress
- 73. ساختاردهی تستهای E2E برای پروژههای بزرگ
- 74. بهترین شیوهها برای نوشتن تستهای E2E پایدار و قابل اعتماد
- 75. مقدمهای بر تست رگرسیون بصری (Visual Regression Testing)
- 76. استفاده از ابزارهایی مانند Percy یا Applitools
- 77. مقدمهای بر تست دسترسپذیری (Accessibility Testing - a11y)
- 78. ادغام ابزارهای a11y مانند `axe-core` با Jest و Cypress
- 79. مقدمهای بر تست کارایی (Performance Testing) در فرانتاند
- 80. استفاده از Lighthouse برای تحلیل کارایی
- 81. تست کارایی در پایپلاین CI/CD
- 82. تست واکنشگرایی (Responsive Design Testing) با Cypress
- 83. مقدمهای بر تست امنیت در فرانتاند (Cross-Site Scripting, etc.)
- 84. استراتژیهای تست Cross-Browser
- 85. مفهوم یکپارچهسازی مداوم و تحویل مداوم (CI/CD)
- 86. ادغام تستهای واحد و یکپارچهسازی در CI (GitHub Actions)
- 87. ادغام تستهای E2E در پایپلاین CI/CD
- 88. گزارشگیری و اطلاعرسانی نتایج تست در CI/CD
- 89. استفاده از Docker برای ایجاد محیط تست پایدار
- 90. توسعه مبتنی بر تست (Test-Driven Development - TDD) در فرانتاند
- 91. چرخه TDD: Red-Green-Refactor
- 92. توسعه مبتنی بر رفتار (Behavior-Driven Development - BDD)
- 93. نوشتن سناریوها با Gherkin (Given, When, Then)
- 94. ادغام BDD با Cypress با استفاده از `cypress-cucumber-preprocessor`
- 95. ایجاد فرهنگ کیفیت و تست در تیم توسعه
- 96. ملاحظات تست برای Vue.js (با Vue Test Utils)
- 97. ملاحظات تست برای Angular (با Karma و Jasmine)
- 98. جمعبندی دوره و مرور مفاهیم کلیدی
- 99. مسیر آینده: موضوعات پیشرفته و ابزارهای نوین در تست فرانتاند
- 100. **تست End-to-End (E2E) و نقش آن در اطمینان از تجربه کاربری کامل در SPAs**
محتویات بسته آموزشی
🌐 سامانه آنلاین فلشکارت؛ مرور هدفمند و هوشمند
اکانت ارائهشده، دسترسی به نسخه تحت وب سامانه فلشکارت ویژه این دوره را فراهم میکند. این سامانه از الگوریتم زمانبندی مرور SM-2 استفاده میکند و بر اساس ارزیابی شما از میزان یادآوری هر کارت، زمان مرورهای بعدی را تنظیم میکند.
به این ترتیب، کارتهای دشوارتر میتوانند زودتر مرور شوند و برای تثبیت مطالب در حافظه، برنامه مرور متناسبتری داشته باشید.
مدتزمان معادل آموزشی بر اساس برآورد این دوره در گواهی درج میشود.
گواهی دوزبانه با استعلام آنلاین
پس از تکمیل فعالیتهای لازم و تأیید درخواست، گواهی پایان دوره به زبان فارسی و انگلیسی صادر میشود. گواهی دارای لینک اختصاصی و QR Code برای بررسی و استعلام آنلاین است.
این گواهی صرفاً بهعنوان گواهی اتمام دوره آموزشی صادر میشود و معادل مدرک دانشگاهی، آکادمیک یا مدرک رسمی مورد تأیید نهادهای دولتی نیست. صدور آن منوط به تکمیل شرایط دوره و تأیید نهایی درخواست است.
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.