آشنايي با ابزارهاي تست کدهاي جاوا اسکريپت
آشنايي با ابزارهاي تست کدهاي جاوا اسکريپت

يکي از نيازهاي بسيار مهم امروز تست کردن مستقيم  و بدون دردسر کدهاي جاوا اسکريپت است، يک روش ديگر براي رفع باگ ها و اطمينان حاصل کردن از اين موضوع که اپليکيشن ها به خوبي در مرورگر و يا در سمت Node.js اجرا مي شوند. خوشبختانه زماني که توسعه دهندگان به مسئله تست کردن کدهاي جاوا اسکريپت برخورد مي کنند گزينه هاي زيادي را در مقابل خود مي يابند.
مقدمه اي درباره اين موضوع
اجرا کننده و فريم ورک ها براي يونيت تست، integration testing و تست هاي فانکشنال به راحتي در اکوسيستم جاوا اسکريپت در دسترس است که تمامي آنها براي Node.js، مرورگرها و همينطور براي فريم ورک هاي انگولار و React يکپارچه شده اند. در ادامه اين مطلب قصد داريم 10 مورد از گزينه هاي قابل توجه توسعه دهندگان که به آنها براي تست کردن اپليکيشن هايشان کمک مي کنند را به شما معرفي کنيم.
آشنايي با ابزار AVA
AVA يک test runner براي Node.js است که يک API کوتاه، يک خروجي از جزئيات خطاها و پشتيباني براي ويژگي هاي جديد زبان برنامه نويسي جاوا اسکريپت و همينطور ايزوله کردن پردازش ها را ارائه مي دهد. AVA براي تست ماژول هاي Node.js بسيار مناسب است و همينطور در اپليکيشن هاي سمت سرور نيز کاربرد زيادي دارد، با اين حال توصيه ما به شما اين است که از آن براي تست اپليکيشن هاي UI استفاده نکنيد. از جمله قابليت هاي اين ابزار مي توان به اين مورد اشاره کرد که AVA يک ويژگي را به شما پيشنهاد مي کند که با استفاده از آن مي توانيد يک تست را با عنوان عمل to do علامت گذاري کنيد. اجراي هر فايل تست يک پردازش جداگانه در اين ابزار است، از ديگر مزاياي فوق العاده اين ابزار مي توان به سرعت بالا، کمتر شدن کدها، سينتکس کدهاي تست ساده تر و قابليت اجراي کدهاي تست به  صورت همزمان در جاوا اسکريپت اشاره کرد. AVA علاوه بر اين از توابع async و همينطور observable ها نيز پشتيباني مي کند. ( يک observable با يک نوع داده شروع مي شود که مي تواند براي منابع داده بر پايه مدل push-based مانند رويدادهاي DOM مورد استفاده قرار گيرد.)
ابزار Cucumber.js ابزاري براي تست کدهاي جاوا اسکريپت
اين ابزار در واقع يک پياده سازي از ابزار تست Cucumber مي باشد، Cucumber.js بر روي Node.js اجرا و نگهداري مي شود و همينطور تنها در مرورگرهاي وب پيشرفته اجرا مي شود. پروژه Cucumber داراي مزايايي است که از جمله آنها مي توان به ارتباطات تيمي و توانايي اجراي خودکار تست هايي که در زبان plain نوشته شده اند اشاره کرد، منظور از مورد دوم اين است که هر کسي در تيم مي تواند آنها را بخواند. به همين علت است که ارتباطات، همکاري ها و اعتماد تيمي بهبود پيدا خواهد کرد. Cucumber.js داراي يک فايل قابل اجرا است که از آن براي اجراي تست هاي شما استفاده مي شود، البته زماني که شما ويژگي ها را به صورت گلوبال تعريف کنيد نمي توانيد از آن استفاده کنيد.( Cucumber بايد در فايل هاي پشتيباني مورد نياز باشد و ماژول هايي که به صورت گلوبال تعريف شده اند نيز مورد نياز نخواهند بود.)
ابزار تست Enzyme از بهترين ابزارهاي تست جاوا اسکريپت
Enzyme يک ابزار تست js براي کتابخانه UI جاوا اسکريپت و React است، اين ابزار ساخته شده است تا خروجي هاي کامپوننت هاي React را راحت تر کند. توسعه دهندگان مي توانند اين ابزار جاوا اسکريپت را دستکاري کرده و آن را در زمان اجرا شبيه سازي کنند. Enzyme API در واقع jQuery API که براي دستکاري هاي DOM  استفاده مي شود را تقليد مي کند. Enzyme در زمينه اجراي تست و کتابخانه assertion بي نظير است. اگر توسعه دهندگان قصد استفاده از Enzyme با assertion هاي شخصي سازي شده و توابعي که کار با آنها راحت است را داشته باشند تا با استفاده از آن کامپوننت هاي React را تست کنند، آنها مي توانند chai-enzyme ساخته شده توسط Mocha/Chai، jasmine-enzyme ساخته شده توسط Jasmine و يا jest-enzyme ساخته شده توسط Jest. Enzyme ا در نظر بگيرند که تمامي آنها براي تست کامپوننت هاي ري اکت نيتيو مورد استفاده قرار مي گيرند.
آشنايي با ابزار Karma
Karma يک ابزار تست js است که امکان اجراي کدها در مرورگرهاي مختلف را براي شما فراهم مي کند. تمامي مرورگرهاي اصلي شامل مرورگرهاي موبايل اين ابزار را پشتيباني مي کنند. توسعه دهندگاني که بر روي اين پروژه کار کرده اند مي گويند که Karma محيطي را پيشنهاد مي کند که توسعه دهندگان مجبور نيستند تنظيمات خاصي را بر روي آن انجام دهند و بدون آن مي توانند کدهاي خود را در آن بنويسند و بازخورد آزمون ها را از آن دريافت کنند. Karma براي تست هاي سطح پايين( يونيت تست ها) طراحي شده است، Karma يک فريم ورک براي تست کردن و يا کتابخانه assertion ندارد بلکه يک سرور HTTP را راه اندازي مي کند و بعد از آن يک تست را ايجاد کرده که اين کار از طريق فريم ورک هاي تست مورد علاقه توسعه دهندگان صورت مي گيرد. افزونه هاي اين ابزار فريم ورک هاي مناسبي را ارائه مي دهند که از جمله آنها مي توان به Jasmine، Mocha و QUnit اشاره کرد.
Jasmine ابزاري مناسب براي تست جاوا اسکريپت
Jasmine به عنوان يک فريم ورک behavior-driven براي تست هاي js ثبت شده است. اين فريم ورک هيچ وابستگي به ساير فريم ورک هاي جاوا اسکريپت ندارد و هيچ نيازي نيز به DOM ندارد. طرفداران اين فريم ورک ادعا دارند که نوشتن تست ها با استفاده از اين فريم ورک براي جاوا اسکريپت بسيار راحت است. اين فريم ورک توسط آزمايشگاه هاي Pivotal نگهداري مي شود، Jasmine براي تست وب سايت ها، پروژه هاي Node.js و هر چيز ديگري که جاوا اسکريپت مي تواند اجرا کند مناسب است. اين فريم ورک ساخته شده است تا تست کردن را با استفاده از مرورگرها و ساير فريم ورک هاي جاوا اسکريپت راحت تر کند. Jasmine به توسعه دهندگان اين اجازه را مي دهد که کدهاي خود را از طريق ري اکت و يا انگولار و يا ساير کتابخانه هاي جاوا اسکريپت تست کنند. سعي شده است که اين فريم ورک با کمترين ميزان وابستگي ساخته شود تا به راحتي بتوان آن را نگهداري کرد.
آشنايي با ابزار Jest
Jest به عنوان يک راه حل جامع براي تست کدها در جاوا اسکريپت شناخته شده است و در بسياري از پروژه هاي جاوا اسکريپت مورد استفاده قرار مي گيرد. اين ابزار نياز به هيچ گونه تنظيماتي ندارد، تست ها حالت هاي منحصر به فرد گلوبالي دارند و مي توانند به صورت همزمان اجرا شوند. در ابتدا تست هايي که با شکست روبرو شده اند اجرا خواهند شد که ترتيب آنها بر اساس اندازه فايل هاي تست خواهد بود. اين ابزار تنها با تکنولوژي هاي محبوب جاوا اسکريپت مانند انگولار، بابل، Node.js، ري اکت  و Vue کار مي کند. تست ها مي توانند اجرا شوند تا مسير شي هاي بزرگ را نگهداري کنند. در داخل فايل هاي تست تنها کافي است متدها و اشيا در داخل يک محيط گلوبال قرار داده شوند بدون آن که نيازي به ايمپورت کردن آنها باشد.
ابزار Luna
Luna يک فريم ورک يونيت تست جاوا اسکريپت است که هيچ نيازي به تنظيمات خاصي ندارد، توسعه دهندگان مي توانند اولين يونيت تست خود را تنها در چند دقيقه با استفاده از اين ابزار انجام دهند. گزارشات مربوط به يکپارچه سازي کدها بدون نياز به هيچ گونه ماژول ديگري توليد مي شوند. تست ها بايد به عنوان ماژول هاي ES6 نوشته شوند و بعد از آن نيز به پيش فرض در مرورگر شما اجرا خواهند شد. در اين ابزار همزماني نيز پشتيباني مي شود و به همين دليل شما مي توانيد گروهي از تست ها را به صورت موازي اجرا کنيد. Luna بيشتر براي تست هاي built-in ساخته شده است که براي زبان برنامه نويسي Google’s Go در دسترس هستند. Luna خيلي سازگار نيست و به همين علت است که با استفاده از CoffeeScript يا TypeScript کار نمي کند، همچنين اين ابزار فاقد پشتيباني براي مرورگرهاي قديمي است.
استفاده از ابزار Mocha براي تست
يک فريم ورک بسيار قدرتمند که بر روي Node.js اجرا مي شود شما مي توانيد نتايج آن را در مرورگر مشاهده کنيد. Mocha به شما اين تضمين را مي دهد که تست هاي همزمان شما را به راحتي و بسيار جذاب براي شما انجام دهد. تست ها در اين ابزار به صورت سريالي اجرا مي شوند. طرفداران اين ابزار مي گويند که اين ابزار به شما اجازه مي دهد تا به صورت دقيق تر و انعطاف پذيرتر تست هاي خود را انجام دهيد. براي تست هاي ادامه دار توسعه دهندگان مي توانند از ابزار Wallaby.js استفاده کنند تا قابليت اجراي همزمان را براي Mocha با استفاده از هر کتابخانه assertion فعال کنند. اين فريم ورک با فريم ورک هاي اپليکيشن ديگر مانند Konacha ادغام سازي شده است که به توسعه دهندگان اين اجازه را مي دهد تا با استفاده از Mocha کدهاي جاوا اسکريپت را در Ruby و اپليکيشن هاي Rails تست کنند. تعداد زيادي از افزونه هاي ويرايشگر در دسترس هستند که از جمله آنها مي توان به Mocha sidebar اشاره کرد که شما مي توانيد از آن در ويژوال استوديو استفاده کنيد.
استفاده از Protractor براي تست کدهاي جاوا اسکريپت
Protractor يک فريم ورک تست end-to-end براي جاوا اسکريپت است که بيشتر براي فريم ورک انگولار در جاوا اسکريپت کاربرد دارد، تست هاي اين ابزار بر روي مرورگر اجرا مي شوند. با استفاده از اين ابزار شما مي توانيد با اپليکيشن خود تنها به عنوان يک يوزر تعامل داشته باشيد. در اين ابزار بسياري از استراتژي هاي خاص انگولار پشتيباني مي شود که با استفاده از آنها مي توانيد کدهاي جاوا اسکريپت را در انگولار بدون نياز به نصب مورد خاصي تست کنيد. قابليت انتظار اتوماتيک اين ابزار را قادر مي سازد تا زماني که يک صفحه وب در حال تست است مرحله بعدي آماده سازي شود. Protractor بر پايه WebdriverJS ساخته شده است که يک پياده سازي جاوا اسکريپت از ابزار اتوماتيک سازي مرورگر Selenium براي تست کردن برنامه ها است.
ابزار QUnit
QUnit يک فريم ورک يونيت تست براي جاوا اسکريپت است که براي مواردي همچون جي کوئري، رابط کاربري جي کوئري و پروژه هاي موبايل جي کوئري مورد استفاده قرار مي گيرد. در حقيقت QUnit به عنوان بخشي از جي کوئري توسط مخترع جي کوئري نوشته شده است. QUnit بيشتر به دليل سرعت و راحت بودن استفاده از آن شناخته مي شود که اين موضوع به دليل API کم حجم ولي قابل توسعه امکان پذير شده است و شما با استفاده از آن مي توانيد هر کد جنريک جاوا اسکريپتي را تست کنيد. زماني که يک تست با شکست روبرو مي شود QUnit تضمين مي کند که بازخورد مناسبي را در کمترين زمان ممکن براي شما فراهم کند که اين بازخورد همان جزئيات و دليل مواجه شدن تست شما در جاوا اسکريپت با خطا است. QUnit تمامي مرورگرهايي که توسط jQuery 3.x پشتيباني مي شوند را پشتيباني مي کند که از جمله اين مرورگرها مي توان به انواع مختلف کروم ها، مرورگر Edge، مرورگر فايرفاکس، اينترنت اکسپلورر و همينطور مرورگر معروف سافاري اشاره کرد.

 

طراحی اپلیکیشن اندروید | طراحی وب سایت | شرکت ایده پردازان پاراکس 

  • logo-samandehi
  • logo-nezam-senfi
  • samane-tadarokat-electronic
  • logo-bakutel
  • انجمن صنفی کارفرمایی فروشگاه های اینترنتی شهر تهران
  • شورای عالی انفورماتیک کشور
  • اتحادیه صنف فناوران رایانه تهران
  • etehadieMajazi