کتاب صوتی تکنیکهای Test Isolation for Independent and Repeatable Tests
تکنیکهای Test Isolation: تضمین کیفیت و پایداری در توسعه فرانتاند تکنیکهای 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. مرور اصول کلیدی تستهای مستقل و تکرارپذیر
برای آموختن، همیشه لازم نیست بخوانید
گاهی بهترین فرصت یادگیری زمانی است که در مسیر رفتوآمد هستید، قدم میزنید، استراحت میکنید یا کارهای روزمرهتان را انجام میدهید. محتوای صوتی کمک میکند از این لحظهها برای شنیدن، اندیشیدن و آشنایی با موضوعات تازه بهره ببرید.
◷
یادگیری در دل روزمرگی
از زمان رفتوآمد، پیادهروی یا استراحت برای شنیدن محتوای مفید استفاده کنید؛ بدون آنکه همیشه به کتاب چاپی یا صفحه نمایش نیاز داشته باشید.
◎
تجربهای شنیداری و دلنشین
با روایت صوتی، توضیحات گفتاری و فضای شنیداری هر محتوا همراه شوید و متناسب با سلیقه خود، شیوه تازهای برای دریافت مطالب تجربه کنید.
✦
گسترش دانش و دیدگاه
با موضوعات متنوع آشنا شوید، ایدههای تازه کشف کنید و فرصت بیشتری برای یادگیری مستمر و پرورش کنجکاوی خود بسازید.
♫
همراه با سبک زندگی شما
محتوای صوتی را متناسب با برنامه روزانه خود انتخاب کنید و در زمان مناسب، شنیدن را به بخشی از عادتهای شخصیتان تبدیل کنید.
کتاب صوتی یا پادکست؟
کتاب صوتی
راهی برای همراه شدن با محتوای یک کتاب از طریق شنیدن. بسته به اثر، میتوانید داستانها، آموزشها، مفاهیم تخصصی یا مطالب کاربردی را در قالب روایت و بیان صوتی دنبال کنید.
مناسب برای شنیدن و مرور محتوای کتابها
پادکست آموزشی
فرصتی برای دنبال کردن موضوعات مشخص در قالب گفتوگو، روایت، توضیح آموزشی یا مجموعهای از قسمتهای صوتی؛ مناسب برای کشف ایدهها و آشنایی با دیدگاههای گوناگون.
مناسب برای یادگیری موضوعی و شنیدن دیدگاههای تازه
هر جا که هستید، شنیدن را آغاز کنید
با دستگاه مناسب خود، محتوای صوتی را به آسانی دنبال کنید.
▯
گوشی هوشمند
اندروید و آیفون
▣
تبلت
برای شنیدن و دنبال کردن محتوا
▤
رایانه و لپتاپ
با پخشکننده صوتی سازگار
♫
هدفون و بلندگو
برای شنیدن متناسب با محیط
چطور از تجربه شنیدن بیشتر بهره ببریم؟
✦ زمان مناسبی برای شنیدن انتخاب کنید؛ زمانی که بتوانید با آرامش به محتوا توجه داشته باشید.
✦ برای مطالب آموزشی، نکتههای مهم را یادداشت کنید یا پس از پایان شنیدن، آنها را مرور کنید.
✦ اگر محتوا طولانی است، آن را در چند نوبت دنبال کنید تا فرصت بیشتری برای درک و مرور داشته باشید.
✦ هنگام رانندگی یا انجام کارهای نیازمند تمرکز، ایمنی را در اولویت قرار دهید و از شیوه شنیدنی استفاده کنید که حواس شما را مختل نکند.
هر شنیدن، فرصتی برای کشف است
با کتابهای صوتی و پادکستهای آموزشی، دنیای تازهای از ایدهها، روایتها و آموختنیها را به لحظههای خود اضافه کنید.
express24.ir
امکانات پخش، ادامه شنیدن و دسترسی آفلاین به نوع فایل، دستگاه و نرمافزار مورد استفاده بستگی دارد.
تگها:
automated testing
ci/cd
frontend testing
Independent Tests
Integration Testing
mocking
Programming
Regression Testing
Repeatable Tests
Software Development
Stubbing
Test Isolation
Testability
Unit Testing
برنامه نویسی
تست ایزولیشن
تست پذیری
تست خودکار
تست رگرسیون
تست فرانتاند
تست مستقل
تست واحد
تست یکپارچگی
تکرارپذیری تست
توسعه سریع
توسعه نرمافزار
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.