Mastering React Test-Driven Development
این کتاب، درباره اصول است؛ اصول من. این کتاب، مجموعه ای از اصول، شیوهها و آداب و رسومی است که به نظر من هنگام ساخت برنامههای React بسیار مفید هستند. من سعی میکنم که این ایدهها را در کارهای روزمره خود به کار برم و آنقدر به آنها اعتقاد دارم که از هر فرصتی برای آموزش آنها به دیگران استفاده میکنم. به همین دلیل این کتاب را نوشتم: برای نشان دادن ایده هایی که به من کمک کرده اند تا در حرفه خودم موفق باشم.
توسعه آزمون محور (TDD) از جامعه جاوا اسکریپت نشات نگرفته است. با این حال، آزمون محور کردن کدهای جاوا اسکریپتی کاملاً امکان پذیر است؛ و اگرچه TDD در جامعه React معمول نیست، دلیلی بر عدم وجود آن هم وجود ندارد. در واقع، React به عنوان یک پلتفرم UI، به دلیل داشتن مدل ظریفی از کامپوننتهای تابعی و وضعیت، برای TDD بسیار مناسبتر از پلتفرمهای UI قدیمی است.
بنابراین TDD چیست و چرا باید از آن استفاده کنید؟ توسعه آزمون محور، فرآیندی برای نوشتن نرم افزار است که شامل نوشتن آزمایشات یا مشخصات، قبل از نوشتن هر کدی است. متخصصانش از آن پیروی میکنند زیرا معتقدند که آن به آنها کمک میکند تا با هزینه کمتری نرم افزارهایی با کیفیت بالا و با طول عمر بیشتری بسازند و طراحی کنند. آنها معتقدند که TDD ساز و کاری برای برقراری ارتباط بین طراحی و مشخصات ارائه میدهد و در عین حال به عنوان یک مجموعه رگرسیون سفت و سخت عمل میکند. دادههای تجربی زیادی وجود ندارند که بتوانند صحت هر یک از این موارد را ثابت کنند؛ بنابراین بهترین کاری که میتوانید انجام دهید این است که خودتان آن را امتحان کنید و تصمیم بگیرید. شاید مهمتر از همه برای من این بود که دریافتم که TDD ترس از ایجاد تغییر در نرم افزار را بر طرف میکند و استرس روزهای کاری من را نسبت به گذشته بسیار کمتر میکند.
در کتاب Mastering React Test-Driven Development (تسلط پیدا کردن بر توسعه آزمون محور ری اکت)، TDD را برای برنامههای React با استفاده از Jest، React Router، Redux و GraphQL/Relay پیاده سازی خواهید کرد. همچنین BDD و آزمون پذیرش end-to-end را با CucumberJS و Puppeteer یاد خواهید گرفت. بسیاری از برنامه نویسان از TDD آگاه هستند اما برای بکارگیری آن در فراتر از مثالهای پایه تقلا میکنند. این کتاب نحوهی ساخت برنامههای واقعی و پیچیده را با استفاده از Test Driven Development (TDD) آموزش میدهد. همچنین برای پیگیری روند TDD با استفاده از Jest، ابتدا اصول اولیه را بیان میکند که آزمون محور کردن یکپارچگی کتابخانهها را نیز شامل میشود از جمله React Router، Redux و Relay (GraphQL).
خوانندگان ضمن ایجاد چارچوب آزمون خودشان، refactoring سیستماتیک را تمرین میکنند و درک عمیقی از ابزارها و تکنیکهای TDD به دست میآورند. آنها نحوهی آزمون محور کردن قابلیت هایی همچون اعتبارسنجی فرمهای سمت سرور و سمت کلاینت، فیلتر کردن و جستجوی داده ها، ناوبری و گردش کار کاربر، undo و redo، انیمیشن، دسترسی LocalStorage، ارتباطات WebSocket و پرس و جو از endpointهای GraphQL را فرا خواهند گرفت. این کتاب، ریفکتور کردن کدها را برای استفاده از کتابخانههای React Router و Redux، به صورت TDD آموزش میدهد. همچنین Redux همراه با reducer ها، middleware، sags و کامپوننتهای متصل React به صورت دقیق بررسی شده اند. این کتاب همچنین تستهای پذیرش را با استفاده از Cucumber و Puppeteer پوشش داده است. این کتاب به طور کامل برای React 16.9 به روز شده است و پوشش عمیقی از hookها و کمک کننده تست act ارائه کرده است. مخاطبان این کتاب توسعه دهندگان جاوا اسکریپت هستند که به دنبال اجرای رویکردهای آزمون محور و رفتار محور برای برنامههای React خود هستند.
مطالبی که در کتاب «تسلط پیدا کردن بر توسعه آزمون محور ری اکت» انتشارات Packt تالیف شده توسط Daniel Irvine خواهید آموخت:
- ساخت برنامههای آزمون-محور با استفاده از React 16.9+ و Jest
- ساخت برنامههای وب کامل با استفاده از انواع مختلف عناصر ورودی HTML
- درک انواع مختلف test double و زمان بکارگیری آن ها
- Test-drive کتابخانههای یکپارچگی مانند React Router، Redux و Relay (GraphQL)
- آموختن اینکه چه زمانی عمل گرا باشید و چگونه میانبرهای TDD را استفاده کنید
- آزمون محور کردن تعاملات با APIهای مرورگر از جمله fetch و WebSocket ها
- استفاده از Cucumber.js و Puppeteer برای ساخت تستهای پذیرش BDD-Style برای برنامههای خودتان
- ساخت و تست کدهای آسنکرون Redux با استفاده از redux-saga و expect-redux