کتاب صوتی تکنیکهای Test Isolation برای تستهای ایزوله و قابل تکرار
تکنیکهای Test Isolation: تست فرانتاند ایزوله و قابل تکرار | [نام وبسایت شما] تکنیکهای Test Isolation: تسلط بر تست فرانتاند ایزوله و قابل تکرار معرفی دوره آیا از تستهای فرانتاندی که غیرقابل اعتما...
🎓 دوره آموزشی جامع
📚 اطلاعات دوره
عنوان دوره: دوره تکنیکهای Test Isolation برای تستهای ایزوله و قابل تکرار
موضوع کلی: برنامه نویسی
موضوع میانی: تست فرانتاند
📋 سرفصلهای دوره
- 1. مقدمهای بر اهمیت تست در فرانتاند
- 2. هرم تست: Unit, Integration, E2E
- 3. مشکلات رایج در تستها: Flaky Tests و کندی
- 4. وابستگیها: ریشه اصلی مشکلات در تست
- 5. Test Isolation چیست و چرا به آن نیاز داریم؟
- 6. مزایای تستهای ایزوله: سرعت، قطعیت و تکرارپذیری
- 7. معرفی پروژه نمونه دوره و اهداف آموزشی
- 8. آمادهسازی محیط توسعه (Node.js, Git, Editor)
- 9. نوشتن اولین تست (بدون ایزولهسازی)
- 10. شناسایی وابستگیهای خارجی در یک کامپوننت ساده
- 11. معرفی Test Doubles: جایگزینهایی برای وابستگیها
- 12. Dummies: سادهترین نوع Test Double
- 13. Stubs: جایگزینهایی با پاسخهای از پیش تعیینشده
- 14. Spies: مشاهده تعاملات بدون تغییر رفتار
- 15. Mocks: جایگزینهایی با انتظارات از پیش تعریفشده
- 16. Fakes: پیادهسازیهای سادهشده از وابستگیها
- 17. تفاوت کلیدی بین Mock و Stub
- 18. چه زمانی از Spy استفاده کنیم؟
- 19. انتخاب Test Double مناسب برای هر سناریو
- 20. مفهوم Seam: نقاطی برای تزریق وابستگی
- 21. الگوهای تزریق وابستگی (Dependency Injection)
- 22. تزریق از طریق Constructor/Props
- 23. تزریق از طریق Setter/Method
- 24. اصل وارونگی وابستگی (DIP) و نقش آن در تستپذیری
- 25. تایید رفتار (Behavior Verification) در مقابل تایید وضعیت (State Verification)
- 26. چالشهای ایزولهسازی در کدهای Legacy
- 27. معرفی و راهاندازی Jest
- 28. معرفی و راهاندازی Vitest (جایگزین مدرن)
- 29. ساختار یک فایل تست: `describe`, `it`, `test`
- 30. هوکهای چرخه حیات: `beforeEach`, `afterEach`, `beforeAll`, `afterAll`
- 31. مدیریت و پاکسازی وضعیت بین تستها
- 32. کتابخانههای Assertion: `expect` و Matchers
- 33. ایجاد Mock Functions با `jest.fn()` یا `vi.fn()`
- 34. بررسی فراخوانی Mock Functions: `toHaveBeenCalledWith`
- 35. تعریف مقادیر بازگشتی برای Mock Functions: `mockReturnValue`
- 36. پیادهسازی سفارشی Mock Functions: `mockImplementation`
- 37. جاسوسی (Spying) بر روی متدها با `jest.spyOn()` یا `vi.spyOn()`
- 38. بازگرداندن پیادهسازی اصلی با `mockRestore`
- 39. ایزولهسازی ماژولها با `jest.mock()` یا `vi.mock()`
- 40. پیادهسازی Manual Mocks در پوشه `__mocks__`
- 41. چرا Mock کردن `fetch` به تنهایی کافی نیست؟
- 42. معرفی Mock Service Worker (MSW)
- 43. فلسفه MSW: Intercept کردن درخواستها در سطح شبکه
- 44. راهاندازی MSW برای محیط تست (Node.js)
- 45. نوشتن اولین Request Handler در MSW
- 46. راهاندازی MSW برای محیط توسعه (Browser)
- 47. اشتراکگذاری Handlers بین محیط تست و توسعه
- 48. ایزولهسازی درخواستهای GET با MSW
- 49. ایزولهسازی درخواستهای POST, PUT, DELETE با MSW
- 50. شبیهسازی پاسخهای موفق (Status 2xx)
- 51. شبیهسازی خطاهای سمت کلاینت (Status 4xx)
- 52. شبیهسازی خطاهای سمت سرور (Status 5xx)
- 53. تست حالتهای Loading و انتظار برای پاسخ
- 54. کار با پارامترهای URL و Query Params در MSW
- 55. تست کامپوننتهای Data Fetching (مثال با React Query/SWR)
- 56. ایزولهسازی WebSocket با کتابخانههای mock
- 57. مشکل تست کدهای زمانمحور: `setTimeout`, `setInterval`
- 58. فعالسازی Fake Timers در Jest/Vitest
- 59. جلو بردن زمان با `advanceTimersByTime`
- 60. اجرای تمام تایمرهای در صف با `runAllTimers`
- 61. تست انیمیشنها و افکتهای CSS مبتنی بر زمان
- 62. تست فانکشنهای Debounce و Throttle
- 63. ایزولهسازی `Date` برای نتایج قابل پیشبینی
- 64. ایزولهسازی `localStorage` و `sessionStorage`
- 65. تست خواندن و نوشتن در Storage ایزوله
- 66. ایزولهسازی `window.location` و `window.history`
- 67. تست تغییر URL و ناوبری (Navigation)
- 68. ایزولهسازی `window.matchMedia` برای تستهای Responsive
- 69. ایزولهسازی `window.navigator` (مثلاً Geolocation API)
- 70. ایزولهسازی Clipboard API
- 71. استراتژیهای ایزولهسازی کتابخانههای شخص ثالث
- 72. Mock کردن یک کتابخانه آنالیتیکس (مانند Google Analytics)
- 73. Mock کردن کامپوننتهای UI از کتابخانههای خارجی (مانند Material-UI)
- 74. ایزولهسازی سیستم Routing (مثال با React Router)
- 75. تست کامپوننتها در انزوا از Context Providers
- 76. ایزولهسازی State Management (مثال با Redux/Zustand)
- 77. تست یک Slice/Reducer به صورت ایزوله
- 78. تست کامپوننتهای متصل به Store با Mock Store
- 79. الگوی Arrange-Act-Assert (AAA) برای ساختاردهی تستها
- 80. خوانایی تست: نامگذاری گویا و توضیحات
- 81. اصل "یک Assert برای هر تست" - افسانه یا واقعیت؟
- 82. اجتناب از تست جزئیات پیادهسازی (Implementation Details)
- 83. تست رفتار عمومی (Public API) کامپوننت
- 84. خطر Over-mocking: چه زمانی بیش از حد Mock کردهایم؟
- 85. نگهداری Mockها نزدیک به تستهای مربوطه
- 86. ایجاد Factory Functions برای تولید دادههای تست (Test Data)
- 87. استفاده از کتابخانههایی مانند Faker.js برای دادههای واقعگرایانه
- 88. تستهای پارامتریک (Parametrized Tests) با `test.each`
- 89. ایزولهسازی استایلها و CSS-in-JS
- 90. تست دربرابر قرارداد (Contract Testing) به عنوان یک تکنیک ایزولهسازی
- 91. معرفی و کاربرد Snapshot Testing
- 92. مدیریت و بهروزرسانی Snapshotها
- 93. خطرات و معایب استفاده بیش از حد از Snapshot Testing
- 94. Visual Regression Testing برای ایزولهسازی تغییرات بصری
- 95. ایزولهسازی تستها در محیط CI/CD
- 96. اجرای موازی تستهای ایزوله برای افزایش سرعت
- 97. تحلیل گزارش Code Coverage و نقاط کور آن
- 98. Mutation Testing: سنجش کیفیت واقعی تستها
- 99. متعادلسازی بین تستهای ایزوله (Unit) و Integration
- 100. جمعبندی نهایی: ساخت یک استراتژی تست ایزوله و پایدار
برای آموختن، همیشه لازم نیست بخوانید
گاهی بهترین فرصت یادگیری زمانی است که در مسیر رفتوآمد هستید، قدم میزنید، استراحت میکنید یا کارهای روزمرهتان را انجام میدهید. محتوای صوتی کمک میکند از این لحظهها برای شنیدن، اندیشیدن و آشنایی با موضوعات تازه بهره ببرید.
◷
یادگیری در دل روزمرگی
از زمان رفتوآمد، پیادهروی یا استراحت برای شنیدن محتوای مفید استفاده کنید؛ بدون آنکه همیشه به کتاب چاپی یا صفحه نمایش نیاز داشته باشید.
◎
تجربهای شنیداری و دلنشین
با روایت صوتی، توضیحات گفتاری و فضای شنیداری هر محتوا همراه شوید و متناسب با سلیقه خود، شیوه تازهای برای دریافت مطالب تجربه کنید.
✦
گسترش دانش و دیدگاه
با موضوعات متنوع آشنا شوید، ایدههای تازه کشف کنید و فرصت بیشتری برای یادگیری مستمر و پرورش کنجکاوی خود بسازید.
♫
همراه با سبک زندگی شما
محتوای صوتی را متناسب با برنامه روزانه خود انتخاب کنید و در زمان مناسب، شنیدن را به بخشی از عادتهای شخصیتان تبدیل کنید.
کتاب صوتی یا پادکست؟
کتاب صوتی
راهی برای همراه شدن با محتوای یک کتاب از طریق شنیدن. بسته به اثر، میتوانید داستانها، آموزشها، مفاهیم تخصصی یا مطالب کاربردی را در قالب روایت و بیان صوتی دنبال کنید.
مناسب برای شنیدن و مرور محتوای کتابها
پادکست آموزشی
فرصتی برای دنبال کردن موضوعات مشخص در قالب گفتوگو، روایت، توضیح آموزشی یا مجموعهای از قسمتهای صوتی؛ مناسب برای کشف ایدهها و آشنایی با دیدگاههای گوناگون.
مناسب برای یادگیری موضوعی و شنیدن دیدگاههای تازه
هر جا که هستید، شنیدن را آغاز کنید
با دستگاه مناسب خود، محتوای صوتی را به آسانی دنبال کنید.
▯
گوشی هوشمند
اندروید و آیفون
▣
تبلت
برای شنیدن و دنبال کردن محتوا
▤
رایانه و لپتاپ
با پخشکننده صوتی سازگار
♫
هدفون و بلندگو
برای شنیدن متناسب با محیط
چطور از تجربه شنیدن بیشتر بهره ببریم؟
✦ زمان مناسبی برای شنیدن انتخاب کنید؛ زمانی که بتوانید با آرامش به محتوا توجه داشته باشید.
✦ برای مطالب آموزشی، نکتههای مهم را یادداشت کنید یا پس از پایان شنیدن، آنها را مرور کنید.
✦ اگر محتوا طولانی است، آن را در چند نوبت دنبال کنید تا فرصت بیشتری برای درک و مرور داشته باشید.
✦ هنگام رانندگی یا انجام کارهای نیازمند تمرکز، ایمنی را در اولویت قرار دهید و از شیوه شنیدنی استفاده کنید که حواس شما را مختل نکند.
هر شنیدن، فرصتی برای کشف است
با کتابهای صوتی و پادکستهای آموزشی، دنیای تازهای از ایدهها، روایتها و آموختنیها را به لحظههای خود اضافه کنید.
express24.ir
امکانات پخش، ادامه شنیدن و دسترسی آفلاین به نوع فایل، دستگاه و نرمافزار مورد استفاده بستگی دارد.
تگها:
Front-end testing
Integration Testing
Jest
mocking
Programming
React Testing Library
Repeatable Testing
Software Development
software quality
software testing
Stubbing
Test Isolation
Unit Testing
برنامهنویسی
تست ایزوله
تست فرانتاند
تست قابل تکرار
تست نرمافزار
تست واحد
تست یکپارچگی
توسعه نرمافزار
کیفیت نرمافزار
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.