بررسی اجمالی فصل
در آخر این فصل، شما توانایی توصیف متدولوژی توسعه تست محور (Test-Driven Development / TDD)، شناسایی انواع مختلف تست ها، نوشتن و اجرای کد قابل تست کردن، توسعه یک محیط برای unit testing، پیاده سازی تست در اسکریپت های بیلد اپلیکیشنتون، و نوشتن assert های سفارشی و شبیه سازی (Mock) فانکشن های پیچیده رو خواهید داشت.
در این فصل یاد میگیریم که چجوری کد های بدون باگ و پایدار با ایجاد تست کیس (test case) در جاوا اسکریپت بنویسیم.
معرفی فصل
توی یکی از فصل های قبلی برنامه نویسی تابع محور رو بررسی کردیم که شامل تفاوت بین فانکشن های خالص (همون فانکشن های بدون عوارض جانبی / pure) و فانکشن های موثر (همون فانکشن های با عوارض جانبی / effectual) میشد. در آخر دیدیم که چرا برنامه نویسی بدون عوارض جانبی خیلی مهمه. در این فصل تمرکز اصلیمون رو روی نوشتن کد تابع محور و بکارگیری قابلیت های داخلی جاوا اسکریپت برای نوشتن کدی که در صورت نیاز به صورت اعلانی باشه گذاشتیم. این فصل با استفاده از کانسپت تست ها به شما کمک میکنه تا درک بهتری از مزایای برنامه نویسی تابع محور داشته باشید.
اوایل کار جاوا اسکریپت یکپارچگی زیادی با مرورگر نداشت. موقعی که کد HTML برای صفحه ها زده میشد باید مطمئن میشدیم که اون کد هم روی مرورگر Netscape Navigator و هم روی Internet Explorer کار میکنه. اون زمان زبان اسکریپت نویسی که روی Internet Explorer جواب میداد VBScript بود، که به این معنیه که توسعه دهنده ها باید دو بلاک اسکریپت مینوشتن، یکی به زبان VBScript و یکی جاوا اسکریپت. از اونجایی که اسکریپت ها کار های خیلی ساده ای میکردن و به پیچیدگی الان نبودن، توسعه دهنده ها صرفا به صورت دستی خودشون توی تک تک مرورگر ها صفحه ها رو لود و تست میکردن.
در این چند سال اخیر مرورگر ها تا حد امکان سعی کردن پشتیبانی یکپارچه ای از جاوا اسکریپت داشته باشن، به طوری که کدی که توسعه دهنده به این زبان مینویسه بتونه به یک صورت توی اکثر مرورگر ها و نسخه های مختلف اونها کار کنه. با این حال حتی الان هم همه مرورگر ها %100 با هم سازگار نیستن، اما مرز بین تفاوت هایی که با هم دارن داره کمکم کاهش پیدا میکنه. این به توسعه دهنده ها اجازه میده که اکثر کدشون رو برای یک مرورگر بنویسن و تست کنن و بعد از رسیدن وب اپلیکیشن به مرحله پروداکشن کم کم روی مرورگر های دیگه تستش کنن و در صورت نیاز قسمت های خیلی جزئی به کدشون اضافه کنن تا روی همه مرورگر ها کار کنه.
از اونجایی که اپلیکیشن های مبتنی بر مرورگر دارن بزرگ تر و بزرگ تر میشن و بعضی موقع ها سایز فایل های جاوا اسکریپت به چندین مگابایت هم میرسه، باید مطمئن بشیم که اپلیکیشنمون بدون باگ هست، که این کار نیازمند استفاده از یک سری تاکتیک درست هست که بعضی از اونها رو میشه با بکارگیری کتابخونه و ابزار های مختلف پیاده سازی کرد و بعضی ها در صورت نیاز باید توسط خودمون پیاده سازی بشن. یکی از این ها test-driven development / TDD (توسعه تست محور) هست که قراره توی این فصل بررسی بشه.