کتاب تکنیکهای Test Integration for Multi-Component Scenarios
📚 کتاب آموزشی جامع
📚 اطلاعات کتاب
عنوان کتاب: کتاب تکنیکهای Test Integration for Multi-Component Scenarios
موضوع کلی: برنامه نویسی
موضوع میانی: تست فرانتاند
📋 سرفصلهای کتاب (100 موضوع)
- 1. مقدمه و مبانی تست یکپارچهسازی (Integration Testing)
- 2. چرا تست یکپارچهسازی در فرانتاند حیاتی است؟
- 3. تفاوت تست واحد (Unit)، یکپارچهسازی (Integration) و سرتاسری (End-to-End)
- 4. هرم تست و جایگاه تست یکپارچهسازی
- 5. معرفی ابزارهای کلیدی: Jest و Testing Library
- 6. فلسفه Testing Library: تست رفتار کاربر، نه جزئیات پیادهسازی
- 7. آشنایی با Arrange-Act-Assert (AAA) Pattern در تستنویسی
- 8. راهاندازی محیط تست برای یک پروژه React/Vue/Angular
- 9. نصب و پیکربندی Jest
- 10. پیکربندی Testing Library متناسب با فریمورک
- 11. اولین تست یکپارچهسازی: تعامل دو کامپوننت ساده
- 12. ساختار یک فایل تست و بهترین شیوهها
- 13. اجرای تستها و آشنایی با دستورات CLI
- 14. مفهوم DOM مجازی (Virtual DOM) در تستها
- 15. آشنایی با کوئریهای اصلی Testing Library (getBy, queryBy, findBy)
- 16. تفاوت بین انواع کوئریها و زمان استفاده از هرکدام
- 17. انتخاب بهترین کوئری برای هر سناریو
- 18. تست تعامل کامپوننت والد و فرزند از طریق Props
- 19. شبیهسازی ارسال Props و بررسی رندر صحیح کامپوننت فرزند
- 20. تست رندر شرطی در کامپوننت فرزند بر اساس Props
- 21. تست تعامل از طریق رویدادها (Events): سناریوی فرزند به والد
- 22. استفاده از کتابخانه user-event برای شبیهسازی واقعی تعاملات کاربر
- 23. شبیهسازی کلیک، تایپ و سایر رویدادهای کاربر
- 24. تست یک سناریوی ساده: کلیک روی دکمه در یک کامپوننت و تغییر متن در کامپوننت دیگر
- 25. تست کامپوننتهایی که لیستی از آیتمها را رندر میکنند
- 26. تعامل با یک آیتم خاص در یک لیست
- 27. تست افزودن و حذف آیتم از یک لیست چندکامپوننتی
- 28. مفهوم State مشترک و تست آن در کامپوننتها
- 29. تست کامپوننتهایی که از Context API استفاده میکنند
- 30. ایجاد Provider سفارشی برای تست کامپوننتهای Consumer
- 31. تست تغییرات Context و تأثیر آن بر چندین کامپوننت
- 32. مدیریت سناریوهای آسنکرون در تستهای یکپارچهسازی
- 33. آشنایی با Promise ها و async/await در Jest
- 34. استفاده از کوئریهای findBy برای یافتن المانهای آسنکرون
- 35. استفاده از ابزار waitFor برای انتظار جهت تغییرات در DOM
- 36. تست کامپوننتهایی که داده از API دریافت میکنند
- 37. مفهوم Mocking و ضرورت آن در تستهای یکپارچهسازی
- 38. معرفی Mock Service Worker (MSW) به عنوان ابزار مدرن Mocking API
- 39. راهاندازی MSW برای تستها
- 40. نوشتن اولین تست با API Mock شده توسط MSW
- 41. تست حالت لودینگ (Loading State) در چندین کامپوننت
- 42. تست نمایش پیام خطا (Error State) پس از فراخوانی ناموفق API
- 43. تست نمایش دادهها (Success State) در ساختار چندکامپوننتی
- 44. تست تعاملات کاربر که منجر به فراخوانی API میشوند
- 45. تست فرمهای چندمرحلهای (Multi-step Forms)
- 46. تست اعتبارسنجی (Validation) در سطح فرم
- 47. تست نمایش پیامهای خطا برای فیلدهای مختلف
- 48. تست ارسال موفقیتآمیز فرم و نتیجه آن
- 49. تست تعامل بین فیلدهای وابسته به هم در یک فرم
- 50. مبانی تست مسیریابی (Routing)
- 51. تست کامپوننتهایی که از React Router / Vue Router استفاده میکنند
- 52. شبیهسازی تغییر مسیر و بررسی رندر شدن کامپوننت صحیح
- 53. تست لینکها و دکمههایی که کاربر را به مسیر دیگری هدایت میکنند
- 54. تست رندرهای شرطی بر اساس پارامترهای URL
- 55. تست کامپوننتهای محافظتشده (Protected Routes)
- 56. مقدمهای بر تست با کتابخانههای مدیریت وضعیت (State Management)
- 57. راهاندازی تست برای کامپوننتهای متصل به Redux/Vuex/Zustand
- 58. ایجاد یک Store آزمایشی (Mock Store) برای تستها
- 59. تست کامپوننتهایی که Action ها را Dispatch میکنند
- 60. تست کامپوننتهایی که داده از Store میخوانند (Selectors)
- 61. تست یک جریان کامل: تعامل کاربر، Dispatch اکشن، و آپدیت UI
- 62. تکنیکهای پیشرفته Mocking با Jest
- 63. آشنایی با jest.fn() برای ساخت توابع Mock
- 64. استفاده از jest.spyOn() برای جاسوسی روی توابع موجود
- 65. تست اینکه یک تابع چند بار و با چه پارامترهایی فراخوانی شده است
- 66. Mock کردن ماژولهای جاوااسکریپت (ES Modules)
- 67. Mock کردن کامپوننتهای Third-party
- 68. چگونگی Mock کردن یک Hook سفارشی (Custom Hook)
- 69. تست کامپوننتهای پیچیده مانند Modal ها و Dialog ها
- 70. تست باز و بسته شدن Modal بر اساس تعاملات کاربر
- 71. تست تعاملات درون یک Modal
- 72. تست کامپوننتهای Date Picker و انتخاب تاریخ
- 73. تست سناریوهای Drag and Drop بین دو کامپوننت
- 74. تست کامپوننتهایی که با تایمرها کار میکنند (setTimeout, setInterval)
- 75. استفاده از Fake Timers در Jest
- 76. تست کامپوننتهایی که به ابعاد پنجره (Window Size) واکنش نشان میدهند
- 77. تست کامپوننتهای چندزبانه (Internationalization - i18n)
- 78. تست بارگذاری ترجمهها و نمایش متن صحیح
- 79. تست تغییر زبان و تأثیر آن بر UI
- 80. مقدمهای بر تست دسترسپذیری (Accessibility - a11y)
- 81. استفاده از jest-axe برای اجرای تستهای خودکار a11y
- 82. شناسایی و رفع مشکلات رایج دسترسپذیری از طریق تست
- 83. بهترین شیوهها برای نوشتن تستهای خوانا و قابل نگهداری
- 84. نامگذاری توصیفی برای تستها و بلوکهای test/it
- 85. پرهیز از تست جزئیات پیادهسازی
- 86. ساختاردهی پوشهها و فایلهای تست در پروژههای بزرگ
- 87. مفهوم Coverage و نحوه تحلیل گزارش آن
- 88. تنظیم آستانه (Threshold) برای Coverage در CI/CD
- 89. یکپارچهسازی تستها با فرآیند CI/CD (مانند GitHub Actions)
- 90. اجرای خودکار تستها در هر Pull Request
- 91. دیباگ کردن تستهای ناموفق: تکنیکها و ابزارها
- 92. استفاده از `screen.debug()` برای بررسی وضعیت DOM
- 93. استفاده از Debugger خود IDE برای خطایابی تستها
- 94. الگوهای طراحی برای تستپذیری کامپوننتها
- 95. جداسازی منطق از نمایش (Separation of Concerns)
- 96. تزریق وابستگیها (Dependency Injection) در کامپوننتها
- 97. نوشتن تستهای یکپارچهسازی به روش TDD (Test-Driven Development)
- 98. رفاکتورینگ (Refactoring) تستها همگام با کد اصلی
- 99. مقدمهای بر تست رگرسیون بصری (Visual Regression Testing)
- 100. استفاده از ابزارهایی مانند Storybook و Chromatic
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.